comparison src/testdir/test_listdict.vim @ 20158:94f05de75e9f v8.2.0634

patch 8.2.0634: crash with null partial and blob Commit: https://github.com/vim/vim/commit/92b83ccfda7a1d654ccaaf161a9c8a8e01fbcf76 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 25 15:24:44 2020 +0200 patch 8.2.0634: crash with null partial and blob Problem: Crash with null partial and blob. Solution: Check for NULL pointer. Add more tests. (Yegappan Lakshmanan, closes #5984)
author Bram Moolenaar <Bram@vim.org>
date Sat, 25 Apr 2020 15:30:04 +0200
parents 49694eceaa55
children 1fa0ace0ba65
comparison
equal deleted inserted replaced
20157:ada5332a22b7 20158:94f05de75e9f
722 let dict4copy = deepcopy(dict4) 722 let dict4copy = deepcopy(dict4)
723 call assert_true(l == lcopy) 723 call assert_true(l == lcopy)
724 call assert_true(dict4 == dict4copy) 724 call assert_true(dict4 == dict4copy)
725 endfunc 725 endfunc
726 726
727 " Test for extending lists and dictionaries
727 func Test_listdict_extend() 728 func Test_listdict_extend()
728 " Test extend() with lists 729 " Test extend() with lists
729 730
730 " Pass the same List to extend() 731 " Pass the same List to extend()
731 let l = [1, 2, 3] 732 let l = [1, 2, 3]
924 let l = [1, 2, 3] 925 let l = [1, 2, 3]
925 call assert_fails("let l[i] = 3", 'E121:') 926 call assert_fails("let l[i] = 3", 'E121:')
926 call assert_fails("let l[1.1] = 4", 'E806:') 927 call assert_fails("let l[1.1] = 4", 'E806:')
927 call assert_fails("let l[:i] = [4, 5]", 'E121:') 928 call assert_fails("let l[:i] = [4, 5]", 'E121:')
928 call assert_fails("let l[:3.2] = [4, 5]", 'E806:') 929 call assert_fails("let l[:3.2] = [4, 5]", 'E806:')
930 let t = test_unknown()
931 call assert_fails("echo t[0]", 'E685:')
929 endfunc 932 endfunc
930 933
931 " Test for a null list 934 " Test for a null list
932 func Test_null_list() 935 func Test_null_list()
933 let l = test_null_list() 936 let l = test_null_list()
941 call assert_equal('[]', string(l)) 944 call assert_equal('[]', string(l))
942 call assert_equal(0, sort(l)) 945 call assert_equal(0, sort(l))
943 call assert_equal(0, uniq(l)) 946 call assert_equal(0, uniq(l))
944 call assert_fails("let k = [] + l", 'E15:') 947 call assert_fails("let k = [] + l", 'E15:')
945 call assert_fails("let k = l + []", 'E15:') 948 call assert_fails("let k = l + []", 'E15:')
946 call assert_equal(0, len(copy(test_null_list()))) 949 call assert_equal(0, len(copy(l)))
950 call assert_equal(0, count(l, 5))
951 call assert_equal([], deepcopy(l))
952 call assert_equal(5, get(l, 2, 5))
953 call assert_equal(-1, index(l, 2, 5))
954 call assert_equal(0, insert(l, 2, -1))
955 call assert_equal(0, min(l))
956 call assert_equal(0, max(l))
957 call assert_equal(0, remove(l, 0, 2))
958 call assert_equal([], repeat(l, 2))
959 call assert_equal(0, reverse(l))
960 call assert_equal(0, sort(l))
961 call assert_equal('[]', string(l))
962 call assert_equal(0, extend(l, l, 0))
963 lockvar l
964 call assert_equal(1, islocked('l'))
965 unlockvar l
947 endfunc 966 endfunc
948 967
949 " Test for a null dict 968 " Test for a null dict
950 func Test_null_dict() 969 func Test_null_dict()
951 call assert_equal(test_null_dict(), test_null_dict()) 970 call assert_equal(test_null_dict(), test_null_dict())
956 call assert_equal(0, items(d)) 975 call assert_equal(0, items(d))
957 call assert_equal(0, keys(d)) 976 call assert_equal(0, keys(d))
958 call assert_equal(0, values(d)) 977 call assert_equal(0, values(d))
959 call assert_false(has_key(d, 'k')) 978 call assert_false(has_key(d, 'k'))
960 call assert_equal('{}', string(d)) 979 call assert_equal('{}', string(d))
961 call assert_fails('let x = test_null_dict()[10]') 980 call assert_fails('let x = d[10]')
962 call assert_equal({}, {}) 981 call assert_equal({}, {})
963 call assert_equal(0, len(copy(test_null_dict()))) 982 call assert_equal(0, len(copy(d)))
983 call assert_equal(0, count(d, 'k'))
984 call assert_equal({}, deepcopy(d))
985 call assert_equal(20, get(d, 'k', 20))
986 call assert_equal(0, min(d))
987 call assert_equal(0, max(d))
988 call assert_equal(0, remove(d, 'k'))
989 call assert_equal('{}', string(d))
990 call assert_equal(0, extend(d, d, 0))
991 lockvar d
992 call assert_equal(1, islocked('d'))
993 unlockvar d
964 endfunc 994 endfunc
965 995
966 " vim: shiftwidth=2 sts=2 expandtab 996 " vim: shiftwidth=2 sts=2 expandtab