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)
diff --git a/src/testdir/test_blob.vim b/src/testdir/test_blob.vim
index 3c15101..46b7b02 100644
--- a/src/testdir/test_blob.vim
+++ b/src/testdir/test_blob.vim
@@ -33,6 +33,7 @@
   call assert_fails('let b = 0z.')
   call assert_fails('let b = 0z001122.')
   call assert_fails('call get("", 1)', 'E896:')
+  call assert_equal(0, len(test_null_blob()))
 endfunc
 
 " assignment to a blob
@@ -100,6 +101,7 @@
   call assert_equal(999, get(b, 5, 999))
   call assert_equal(-1, get(b, -8))
   call assert_equal(999, get(b, -8, 999))
+  call assert_equal(10, get(test_null_blob(), 2, 10))
 
   call assert_equal(0x00, b[0])
   call assert_equal(0x22, b[2])
@@ -117,6 +119,7 @@
   call assert_equal('0z00112233', string(b))
   call remove(b, 0, 3)
   call assert_equal('0z', string(b))
+  call assert_equal('0z', string(test_null_blob()))
 endfunc
 
 func Test_blob_compare()
@@ -251,6 +254,7 @@
   call assert_fails("call remove(b, 3, 2)", 'E979:')
   call assert_fails("call remove(1, 0)", 'E896:')
   call assert_fails("call remove(b, b)", 'E974:')
+  call assert_fails("call remove(test_null_blob(), 1, 2)", 'E979:')
 endfunc
 
 func Test_blob_read_write()
@@ -313,6 +317,7 @@
   call assert_fails('call insert(b, 0, -20)', 'E475:')
   call assert_fails('call insert(b, 0, 20)', 'E475:')
   call assert_fails('call insert(b, [])', 'E745:')
+  call assert_equal(0, insert(test_null_blob(), 0x33))
 endfunc
 
 func Test_blob_reverse()
@@ -320,6 +325,7 @@
   call assert_equal(0zBEADDE, reverse(0zDEADBE))
   call assert_equal(0zADDE, reverse(0zDEAD))
   call assert_equal(0zDE, reverse(0zDE))
+  call assert_equal(0z, reverse(test_null_blob()))
 endfunc
 
 func Test_blob_json_encode()