github.com/gopherjs/gopherjs@v1.19.0-beta1.0.20240506212314-27071a8796e4/tests/compiler_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestVariadicNil(t *testing.T) {
     8  	t.Run("only variadic", func(t *testing.T) {
     9  		printVari := func(strs ...string) []string {
    10  			return strs
    11  		}
    12  
    13  		if got := printVari(); got != nil {
    14  			t.Errorf("printVari(): got: %#v; want %#v.", got, nil)
    15  		}
    16  
    17  		{
    18  			var want []string
    19  			if got := printVari(want...); got != nil {
    20  				t.Errorf("printVari(want...): got: %#v; want %#v.", got, nil)
    21  			}
    22  		}
    23  
    24  		{
    25  			want := []string{}
    26  			if got := printVari(want...); got == nil || len(got) != len(want) {
    27  				t.Errorf("printVari(want...): got: %#v; want %#v.", got, want)
    28  			}
    29  		}
    30  	})
    31  	t.Run("mixed", func(t *testing.T) {
    32  		printVari := func(_ int, strs ...string) []string {
    33  			return strs
    34  		}
    35  
    36  		if got := printVari(0); got != nil {
    37  			t.Errorf("printVari(): got: %#v; want %#v.", got, nil)
    38  		}
    39  
    40  		{
    41  			var want []string
    42  			if got := printVari(0, want...); got != nil {
    43  				t.Errorf("printVari(want...): got: %#v; want %#v.", got, nil)
    44  			}
    45  		}
    46  
    47  		{
    48  			want := []string{}
    49  			if got := printVari(0, want...); got == nil || len(got) != len(want) {
    50  				t.Errorf("printVari(want...): got: %#v; want %#v.", got, want)
    51  			}
    52  		}
    53  	})
    54  }