Mercurial > vim
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 |