diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2024-05-02 13:02:36 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-05-02 13:02:36 +0200 |
commit | da9d345b3dd8fe67c0c7341e426b09bec8c40abd (patch) | |
tree | 9c173838b8c55999619ddf3073e49e149562cb10 /src/testdir | |
parent | 3ca2ae180ae26d0aa29b33ef158f79be811d6be8 (diff) |
patch 9.1.0387: Vim9: null value tests not sufficientv9.1.0387
Problem: Vim9: null value tests not sufficient
Solution: Add a more comprehensive test for null values
(Yegappan Lakshmanan)
closes: #14701
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_vim9_builtin.vim | 2 | ||||
-rw-r--r-- | src/testdir/test_vim9_class.vim | 26 | ||||
-rw-r--r-- | src/testdir/test_vim9_script.vim | 28 |
3 files changed, 29 insertions, 27 deletions
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index 42d09fe9a5..83153ad085 100644 --- a/src/testdir/test_vim9_builtin.vim +++ b/src/testdir/test_vim9_builtin.vim @@ -4783,8 +4783,6 @@ def Test_typename() if has('channel') assert_equal('channel', test_null_channel()->typename()) endif - assert_equal('class<Unknown>', typename(null_class)) - assert_equal('object<Unknown>', typename(null_object)) var l: list<func(list<number>): number> = [function('min')] assert_equal('list<func(list<number>): number>', typename(l)) enddef diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index 0a48b822df..0754af7dec 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -560,7 +560,7 @@ def Test_using_null_class() END v9.CheckSourceSuccess(lines) - # Test for using a null class with string() + # Test for using a null class with type() and typename() lines =<< trim END vim9script assert_equal(12, type(null_class)) @@ -569,30 +569,6 @@ def Test_using_null_class() v9.CheckSourceSuccess(lines) enddef -def Test_using_null_object() - # Test for using a null object as a value - var lines =<< trim END - vim9script - assert_equal(1, empty(null_object)) - END - v9.CheckSourceSuccess(lines) - - # Test for using a null object with string() - lines =<< trim END - vim9script - assert_equal('object of [unknown]', string(null_object)) - END - v9.CheckSourceSuccess(lines) - - # Test for using a null object with string() - lines =<< trim END - vim9script - assert_equal(13, type(null_object)) - assert_equal('object<Unknown>', typename(null_object)) - END - v9.CheckSourceSuccess(lines) -enddef - def Test_class_interface_wrong_end() var lines =<< trim END vim9script diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index a3f21bed02..9ec92b398d 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -5055,6 +5055,34 @@ def Test_eval_lambda_block() v9.CheckSourceSuccess(lines) enddef +" Test for using various null values +def Test_null_values() + var lines =<< trim END + var nullValues = [ + [null, 1, 'null', 7, 'special'], + [null_blob, 1, '0z', 10, 'blob'], + [null_channel, 1, 'channel fail', 9, 'channel'], + [null_dict, 1, '{}', 4, 'dict<any>'], + [null_function, 1, "function('')", 2, 'func(...): unknown'], + [null_job, 1, 'no process', 8, 'job'], + [null_list, 1, '[]', 3, 'list<any>'], + [null_object, 1, 'object of [unknown]', 13, 'object<Unknown>'], + [null_partial, 1, "function('')", 2, 'func(...): unknown'], + [null_string, 1, "''", 1, 'string'] + ] + + for [Val, emptyExp, stringExp, typeExp, typenameExp] in nullValues + assert_equal(emptyExp, empty(Val)) + assert_equal(stringExp, string(Val)) + assert_equal(typeExp, type(Val)) + assert_equal(typenameExp, typename(Val)) + assert_equal(Val, copy(Val)) + assert_equal(-1, test_refcount(Val)) + endfor + END + v9.CheckSourceDefAndScriptSuccess(lines) +enddef + " Keep this last, it messes up highlighting. def Test_substitute_cmd() new |