diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 162ee65fc1..a07b3be1f5 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -18,7 +18,7 @@ SCRIPTS := test_eval.out \ test42.out test45.out \ test47.out test48.out test49.out \ test52.out test53.out test55.out \ - test57.out test58.out test59.out \ + test58.out test59.out \ test64.out \ test68.out test69.out \ test73.out \ diff --git a/src/nvim/testdir/test57.in b/src/nvim/testdir/test57.in deleted file mode 100644 index 8d972e4a68..0000000000 --- a/src/nvim/testdir/test57.in +++ /dev/null @@ -1,500 +0,0 @@ -Tests for :sort command. vim: set ft=vim : - -STARTTEST -:so small.vim -:" -:/^t01:/+1,/^t02/-1sort -:/^t02:/+1,/^t03/-1sort n -:/^t03:/+1,/^t04/-1sort x -:/^t04:/+1,/^t05/-1sort u -:/^t05:/+1,/^t06/-1sort! -:/^t06:/+1,/^t07/-1sort! n -:/^t07:/+1,/^t08/-1sort! u -:/^t08:/+1,/^t09/-1sort o -:/^t09:/+1,/^t10/-1sort! x -:/^t10:/+1,/^t11/-1sort/./ -:/^t11:/+1,/^t12/-1sort/../ -:/^t12:/+1,/^t13/-1sort/../u -:/^t13:/+1,/^t14/-1sort/./n -:/^t14:/+1,/^t15/-1sort/./r -:/^t15:/+1,/^t16/-1sort/../r -:/^t16:/+1,/^t17/-1sort/./rn -:/^t17:/+1,/^t18/-1sort/\d/ -:/^t18:/+1,/^t19/-1sort/\d/r -:/^t19:/+1,/^t20/-1sort/\d/n -:/^t20:/+1,/^t21/-1sort/\d/rn -:/^t21:/+1,/^t22/-1sort/\d\d/ -:/^t22:/+1,/^t23/-1sort/\d\d/n -:/^t23:/+1,/^t24/-1sort/\d\d/x -:/^t24:/+1,/^t25/-1sort/\d\d/r -:/^t25:/+1,/^t26/-1sort/\d\d/rn -:/^t26:/+1,/^t27/-1sort/\d\d/rx -:/^t27:/+1,/^t28/-1sort no -:/^t01:/,$wq! test.out -ENDTEST - -t01: alphebetical -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t02: numeric -abc -ab -a321 -a123 -a122 -a -x-22 -b321 -b123 - -c123d --24 - 123b -c321d -0 -b322b -b321 -b321b - - -t03: hexadecimal -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t04: alpha, unique -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t05: alpha, reverse -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t06: numeric, reverse -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t07: unique, reverse -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t08: octal -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t09: reverse, hexadecimal -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t10: alpha, skip first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t11: alpha, skip first 2 characters -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t12: alpha, unique, skip first 2 characters -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t13: numeric, skip first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t14: alpha, sort on first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t15: alpha, sort on first 2 characters -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t16: numeric, sort on first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t17: alpha, skip past first digit -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t18: alpha, sort on first digit -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t19: numeric, skip past first digit -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t20: numeric, sort on first digit -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t21: alpha, skip past first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t22: numeric, skip past first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t23: hexadecimal, skip past first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t24: alpha, sort on first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t25: numeric, sort on first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t26: hexadecimal, sort on first 2 digits -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t27: wrong arguments -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t28: done - diff --git a/src/nvim/testdir/test57.ok b/src/nvim/testdir/test57.ok deleted file mode 100644 index aa3d373183..0000000000 --- a/src/nvim/testdir/test57.ok +++ /dev/null @@ -1,459 +0,0 @@ -t01: alphebetical - - - 123b -a -a122 -a123 -a321 -ab -abc -b123 -b321 -b321 -b321b -b322b -c123d -c321d -t02: numeric -abc -ab -a - - - --24 -x-22 -0 -a122 -a123 -b123 -c123d - 123b -a321 -b321 -c321d -b321 -b321b -b322b -t03: hexadecimal - - -a -ab -abc - 123b -a122 -a123 -a321 -b123 -b321 -b321 -b321b -b322b -c123d -c321d -t04: alpha, unique - - 123b -a -a122 -a123 -a321 -ab -abc -b123 -b321 -b321b -b322b -c123d -c321d -t05: alpha, reverse -c321d -c123d -b322b -b321b -b321 -b321 -b123 -abc -ab -a321 -a123 -a122 -a - 123b - - -t06: numeric, reverse -b322b -b321b -b321 -c321d -b321 -a321 - 123b -c123d -b123 -a123 -a122 - - -a -ab -abc -t07: unique, reverse -c321d -c123d -b322b -b321b -b321 -b123 -abc -ab -a321 -a123 -a122 -a - 123b - -t08: octal -abc -ab -a - - -a122 -a123 -b123 -c123d - 123b -a321 -b321 -c321d -b321 -b321b -b322b -t09: reverse, hexadecimal -c321d -c123d -b322b -b321b -b321 -b321 -b123 -a321 -a123 -a122 - 123b -abc -ab -a - - -t10: alpha, skip first character -a - - -a122 -a123 -b123 - 123b -c123d -a321 -b321 -b321 -b321b -c321d -b322b -ab -abc -t11: alpha, skip first 2 characters -ab -a - - -a321 -b321 -b321 -b321b -c321d -a122 -b322b -a123 -b123 - 123b -c123d -abc -t12: alpha, unique, skip first 2 characters -ab -a - -a321 -b321 -b321b -c321d -a122 -b322b -a123 -b123 - 123b -c123d -abc -t13: numeric, skip first character -abc -ab -a - - -a122 -a123 -b123 -c123d - 123b -a321 -b321 -c321d -b321 -b321b -b322b -t14: alpha, sort on first character - - - 123b -abc -ab -a -a321 -a123 -a122 -b321 -b123 -b322b -b321 -b321b -c123d -c321d -t15: alpha, sort on first 2 characters -a - - - 123b -a123 -a122 -a321 -abc -ab -b123 -b321 -b322b -b321 -b321b -c123d -c321d -t16: numeric, sort on first character -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t17: alpha, skip past first digit -abc -ab -a - - -a321 -b321 -b321 -b321b -c321d -a122 -b322b -a123 -b123 - 123b -c123d -t18: alpha, sort on first digit -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t19: numeric, skip past first digit -abc -ab -a - - -a321 -b321 -c321d -b321 -b321b -a122 -b322b -a123 -b123 -c123d - 123b -t20: numeric, sort on first digit -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t21: alpha, skip past first 2 digits -abc -ab -a - - -a321 -b321 -b321 -b321b -c321d -a122 -b322b -a123 -b123 - 123b -c123d -t22: numeric, skip past first 2 digits -abc -ab -a - - -a321 -b321 -c321d -b321 -b321b -a122 -b322b -a123 -b123 -c123d - 123b -t23: hexadecimal, skip past first 2 digits -abc -ab -a - - -a321 -b321 -b321 -a122 -a123 -b123 -b321b -c321d -b322b - 123b -c123d -t24: alpha, sort on first 2 digits -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t25: numeric, sort on first 2 digits -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t26: hexadecimal, sort on first 2 digits -abc -ab -a - - -a123 -a122 -b123 -c123d - 123b -a321 -b321 -c321d -b322b -b321 -b321b -t27: wrong arguments -abc -ab -a -a321 -a123 -a122 -b321 -b123 -c123d - 123b -c321d -b322b -b321 -b321b - - -t28: done - diff --git a/test/functional/legacy/057_sort_spec.lua b/test/functional/legacy/057_sort_spec.lua new file mode 100644 index 0000000000..776cd0affb --- /dev/null +++ b/test/functional/legacy/057_sort_spec.lua @@ -0,0 +1,977 @@ +-- Tests for :sort command. + +local helpers = require('test.functional.helpers') +local insert, source, clear, expect, eq, eval = helpers.insert, + helpers.source, helpers.clear, helpers.expect, helpers.eq, helpers.eval + +describe('sort command', function() + setup(clear) + + it('is working', function() + insert([[ + t01: alphebetical + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t02: numeric + abc + ab + a321 + a123 + a122 + a + x-22 + b321 + b123 + + c123d + -24 + 123b + c321d + 0 + b322b + b321 + b321b + + + t03: hexadecimal + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t04: alpha, unique + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t05: alpha, reverse + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t06: numeric, reverse + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t07: unique, reverse + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t08: octal + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t09: reverse, hexadecimal + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t10: alpha, skip first character + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t11: alpha, skip first 2 characters + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t12: alpha, unique, skip first 2 characters + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t13: numeric, skip first character + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t14: alpha, sort on first character + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t15: alpha, sort on first 2 characters + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t16: numeric, sort on first character + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t17: alpha, skip past first digit + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t18: alpha, sort on first digit + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t19: numeric, skip past first digit + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t20: numeric, sort on first digit + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t21: alpha, skip past first 2 digits + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t22: numeric, skip past first 2 digits + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t23: hexadecimal, skip past first 2 digits + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t24: alpha, sort on first 2 digits + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t25: numeric, sort on first 2 digits + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t26: hexadecimal, sort on first 2 digits + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t27: wrong arguments + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t28: done + ]]) + + source([[ + /^t01:/+1,/^t02/-1sort + /^t02:/+1,/^t03/-1sort n + /^t03:/+1,/^t04/-1sort x + /^t04:/+1,/^t05/-1sort u + /^t05:/+1,/^t06/-1sort! + /^t06:/+1,/^t07/-1sort! n + /^t07:/+1,/^t08/-1sort! u + /^t08:/+1,/^t09/-1sort o + /^t09:/+1,/^t10/-1sort! x + /^t10:/+1,/^t11/-1sort/./ + /^t11:/+1,/^t12/-1sort/../ + /^t12:/+1,/^t13/-1sort/../u + /^t13:/+1,/^t14/-1sort/./n + /^t14:/+1,/^t15/-1sort/./r + /^t15:/+1,/^t16/-1sort/../r + /^t16:/+1,/^t17/-1sort/./rn + /^t17:/+1,/^t18/-1sort/\d/ + /^t18:/+1,/^t19/-1sort/\d/r + /^t19:/+1,/^t20/-1sort/\d/n + /^t20:/+1,/^t21/-1sort/\d/rn + /^t21:/+1,/^t22/-1sort/\d\d/ + /^t22:/+1,/^t23/-1sort/\d\d/n + /^t23:/+1,/^t24/-1sort/\d\d/x + /^t24:/+1,/^t25/-1sort/\d\d/r + /^t25:/+1,/^t26/-1sort/\d\d/rn + /^t26:/+1,/^t27/-1sort/\d\d/rx + ]]) + -- This should fail with "E474: Invalid argument". + source([[ + try + /^t27:/+1,/^t28/-1sort no + catch + let tmpvar = v:exception + endtry]]) + eq('Vim(sort):E474: Invalid argument', eval('tmpvar')) + + -- Assert buffer contents. + expect([[ + t01: alphebetical + + + 123b + a + a122 + a123 + a321 + ab + abc + b123 + b321 + b321 + b321b + b322b + c123d + c321d + t02: numeric + abc + ab + a + + + + -24 + x-22 + 0 + a122 + a123 + b123 + c123d + 123b + a321 + b321 + c321d + b321 + b321b + b322b + t03: hexadecimal + + + a + ab + abc + 123b + a122 + a123 + a321 + b123 + b321 + b321 + b321b + b322b + c123d + c321d + t04: alpha, unique + + 123b + a + a122 + a123 + a321 + ab + abc + b123 + b321 + b321b + b322b + c123d + c321d + t05: alpha, reverse + c321d + c123d + b322b + b321b + b321 + b321 + b123 + abc + ab + a321 + a123 + a122 + a + 123b + + + t06: numeric, reverse + b322b + b321b + b321 + c321d + b321 + a321 + 123b + c123d + b123 + a123 + a122 + + + a + ab + abc + t07: unique, reverse + c321d + c123d + b322b + b321b + b321 + b123 + abc + ab + a321 + a123 + a122 + a + 123b + + t08: octal + abc + ab + a + + + a122 + a123 + b123 + c123d + 123b + a321 + b321 + c321d + b321 + b321b + b322b + t09: reverse, hexadecimal + c321d + c123d + b322b + b321b + b321 + b321 + b123 + a321 + a123 + a122 + 123b + abc + ab + a + + + t10: alpha, skip first character + a + + + a122 + a123 + b123 + 123b + c123d + a321 + b321 + b321 + b321b + c321d + b322b + ab + abc + t11: alpha, skip first 2 characters + ab + a + + + a321 + b321 + b321 + b321b + c321d + a122 + b322b + a123 + b123 + 123b + c123d + abc + t12: alpha, unique, skip first 2 characters + ab + a + + a321 + b321 + b321b + c321d + a122 + b322b + a123 + b123 + 123b + c123d + abc + t13: numeric, skip first character + abc + ab + a + + + a122 + a123 + b123 + c123d + 123b + a321 + b321 + c321d + b321 + b321b + b322b + t14: alpha, sort on first character + + + 123b + abc + ab + a + a321 + a123 + a122 + b321 + b123 + b322b + b321 + b321b + c123d + c321d + t15: alpha, sort on first 2 characters + a + + + 123b + a123 + a122 + a321 + abc + ab + b123 + b321 + b322b + b321 + b321b + c123d + c321d + t16: numeric, sort on first character + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t17: alpha, skip past first digit + abc + ab + a + + + a321 + b321 + b321 + b321b + c321d + a122 + b322b + a123 + b123 + 123b + c123d + t18: alpha, sort on first digit + abc + ab + a + + + a123 + a122 + b123 + c123d + 123b + a321 + b321 + c321d + b322b + b321 + b321b + t19: numeric, skip past first digit + abc + ab + a + + + a321 + b321 + c321d + b321 + b321b + a122 + b322b + a123 + b123 + c123d + 123b + t20: numeric, sort on first digit + abc + ab + a + + + a123 + a122 + b123 + c123d + 123b + a321 + b321 + c321d + b322b + b321 + b321b + t21: alpha, skip past first 2 digits + abc + ab + a + + + a321 + b321 + b321 + b321b + c321d + a122 + b322b + a123 + b123 + 123b + c123d + t22: numeric, skip past first 2 digits + abc + ab + a + + + a321 + b321 + c321d + b321 + b321b + a122 + b322b + a123 + b123 + c123d + 123b + t23: hexadecimal, skip past first 2 digits + abc + ab + a + + + a321 + b321 + b321 + a122 + a123 + b123 + b321b + c321d + b322b + 123b + c123d + t24: alpha, sort on first 2 digits + abc + ab + a + + + a123 + a122 + b123 + c123d + 123b + a321 + b321 + c321d + b322b + b321 + b321b + t25: numeric, sort on first 2 digits + abc + ab + a + + + a123 + a122 + b123 + c123d + 123b + a321 + b321 + c321d + b322b + b321 + b321b + t26: hexadecimal, sort on first 2 digits + abc + ab + a + + + a123 + a122 + b123 + c123d + 123b + a321 + b321 + c321d + b322b + b321 + b321b + t27: wrong arguments + abc + ab + a + a321 + a123 + a122 + b321 + b123 + c123d + 123b + c321d + b322b + b321 + b321b + + + t28: done + ]]) + end) +end)