@@ -767,6 +767,54 @@ def Test_searchcount()
767767 bwipe!
768768enddef
769769
770+ def Test_set_get_bufline ()
771+ # similar to Test_setbufline_getbufline ()
772+ var lines = << trim END
773+ new
774+ var b = bufnr (' %' )
775+ hide
776+ assert_equal (0 , setbufline (b , 1 , [' foo' , ' bar' ]))
777+ assert_equal ([' foo' ], getbufline (b , 1 ))
778+ assert_equal ([' bar' ], getbufline (b , ' $' ))
779+ assert_equal ([' foo' , ' bar' ], getbufline (b , 1 , 2 ))
780+ exe " bd!" b
781+ assert_equal ([], getbufline (b , 1 , 2 ))
782+
783+ split Xtest
784+ setline (1 , [' a' , ' b' , ' c' ])
785+ b = bufnr (' %' )
786+ wincmd w
787+
788+ assert_equal (1 , setbufline (b , 5 , ' x' ))
789+ assert_equal (1 , setbufline (b , 5 , [' x' ]))
790+ assert_equal (1 , setbufline (b , 5 , []))
791+ assert_equal (1 , setbufline (b , 5 , test_null_list ()))
792+
793+ assert_equal (1 , ' x' - >setbufline (bufnr (' $' ) + 1 , 1 ))
794+ assert_equal (1 , [' x' ]- >setbufline (bufnr (' $' ) + 1 , 1 ))
795+ assert_equal (1 , []- >setbufline (bufnr (' $' ) + 1 , 1 ))
796+ assert_equal (1 , test_null_list ()- >setbufline (bufnr (' $' ) + 1 , 1 ))
797+
798+ assert_equal ([' a' , ' b' , ' c' ], getbufline (b , 1 , ' $' ))
799+
800+ assert_equal (0 , setbufline (b , 4 , [' d' , ' e' ]))
801+ assert_equal ([' c' ], b - >getbufline (3 ))
802+ assert_equal ([' d' ], getbufline (b , 4 ))
803+ assert_equal ([' e' ], getbufline (b , 5 ))
804+ assert_equal ([], getbufline (b , 6 ))
805+ assert_equal ([], getbufline (b , 2 , 1 ))
806+
807+ setbufline (b , 2 , [function (' eval' ), {key : 123 }, test_null_job ()])
808+ assert_equal ([" function('eval')" ,
809+ " {'key': 123}",
810+ " no process"],
811+ getbufline (b , 2 , 4 ))
812+
813+ exe ' bwipe! ' .. b
814+ END
815+ CheckDefAndScriptSuccess (lines )
816+ enddef
817+
770818def Test_searchdecl ()
771819 searchdecl (' blah' , true, true)- >assert_equal (1 )
772820enddef
0 commit comments