]> Cypherpunks repositories - gostls13.git/commitdiff
misc/cgo/test: test C.enum_*
authorHowJMay <vulxj0j8j8@gmail.com>
Tue, 27 Oct 2020 17:03:48 +0000 (17:03 +0000)
committerEmmanuel Odeke <emmanuel@orijtech.com>
Tue, 27 Oct 2020 18:13:59 +0000 (18:13 +0000)
Allocate a C enum object, and test if it can be assigned a value
successfully.

For #39537

Change-Id: I7b5482112486440b9d99f2ee4051328d87f45dca
GitHub-Last-Rev: 81890f40acc5589563ec1206fe119873fb46dc1b
GitHub-Pull-Request: golang/go#39977
Reviewed-on: https://go-review.googlesource.com/c/go/+/240697
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Emmanuel Odeke <emmanuel@orijtech.com>

misc/cgo/test/cgo_test.go
misc/cgo/test/test.go

index b745a4417f1e8e066b0cadfde119431ab52873fa..f7a76d047bd9515eff224e909dda41b1a89cf08e 100644 (file)
@@ -76,6 +76,8 @@ func TestCheckConst(t *testing.T)            { testCheckConst(t) }
 func TestConst(t *testing.T)                 { testConst(t) }
 func TestCthread(t *testing.T)               { testCthread(t) }
 func TestEnum(t *testing.T)                  { testEnum(t) }
+func TestNamedEnum(t *testing.T)             { testNamedEnum(t) }
+func TestCastToEnum(t *testing.T)            { testCastToEnum(t) }
 func TestErrno(t *testing.T)                 { testErrno(t) }
 func TestFpVar(t *testing.T)                 { testFpVar(t) }
 func TestHelpers(t *testing.T)               { testHelpers(t) }
index a78f88499b2a11c81e38371d25992c351c6b9b92..65823b1ca0e95189576b265ba6e097933428c1d6 100644 (file)
@@ -1000,6 +1000,32 @@ func testEnum(t *testing.T) {
        }
 }
 
+func testNamedEnum(t *testing.T) {
+       e := new(C.enum_E)
+
+       *e = C.Enum1
+       if *e != 1 {
+               t.Error("bad enum", C.Enum1)
+       }
+
+       *e = C.Enum2
+       if *e != 2 {
+               t.Error("bad enum", C.Enum2)
+       }
+}
+
+func testCastToEnum(t *testing.T) {
+       e := C.enum_E(C.Enum1)
+       if e != 1 {
+               t.Error("bad enum", C.Enum1)
+       }
+
+       e = C.enum_E(C.Enum2)
+       if e != 2 {
+               t.Error("bad enum", C.Enum2)
+       }
+}
+
 func testAtol(t *testing.T) {
        l := Atol("123")
        if l != 123 {