@@ -656,6 +656,46 @@ func TestFlagSetParse(t *testing.T) {
656656	testParse (NewFlagSet ("test" , ContinueOnError ), t )
657657}
658658
659+ func  TestParseRepeated (t  * testing.T ) {
660+ 	fs  :=  NewFlagSet ("test repeated" , ContinueOnError )
661+ 
662+ 	t .Run ("first parse" , func (t  * testing.T ) {
663+ 		err  :=  fs .Parse ([]string {"foo" , "bar" })
664+ 		if  err  !=  nil  {
665+ 			t .Fatal ("expected no error, got " , err )
666+ 		}
667+ 
668+ 		argsAfterFirst  :=  fs .Args ()
669+ 		if  ! reflect .DeepEqual (argsAfterFirst , []string {"foo" , "bar" }) {
670+ 			t .Fatalf ("expected args [foo bar], got %v" , argsAfterFirst )
671+ 		}
672+ 	})
673+ 
674+ 	t .Run ("re-parse with fewer args" , func (t  * testing.T ) {
675+ 		err  :=  fs .Parse ([]string {"baz" })
676+ 		if  err  !=  nil  {
677+ 			t .Fatal ("expected no error, got " , err )
678+ 		}
679+ 
680+ 		argsAfterSecond  :=  fs .Args ()
681+ 		if  ! reflect .DeepEqual (argsAfterSecond , []string {"baz" }) {
682+ 			t .Fatalf ("expected args [baz], got %v" , argsAfterSecond )
683+ 		}
684+ 	})
685+ 
686+ 	t .Run ("re-parse with no args" , func (t  * testing.T ) {
687+ 		err  :=  fs .Parse ([]string {})
688+ 		if  err  !=  nil  {
689+ 			t .Fatal ("expected no error, got " , err )
690+ 		}
691+ 
692+ 		argsAfterThird  :=  fs .Args ()
693+ 		if  ! reflect .DeepEqual (argsAfterThird , []string {}) {
694+ 			t .Fatalf ("expected args [], got %v" , argsAfterThird )
695+ 		}
696+ 	})
697+ }
698+ 
659699func  TestChangedHelper (t  * testing.T ) {
660700	f  :=  NewFlagSet ("changedtest" , ContinueOnError )
661701	f .Bool ("changed" , false , "changed bool" )
0 commit comments