-
Notifications
You must be signed in to change notification settings - Fork 197
Expand file tree
/
Copy pathissue395_test.go
More file actions
50 lines (41 loc) · 928 Bytes
/
issue395_test.go
File metadata and controls
50 lines (41 loc) · 928 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package main
import "testing"
func TestIssue395TupleAllownil(t *testing.T) {
mainFilename, err := generate(t, issue395TupleAllownil)
if err != nil {
t.Fatalf("generate failed: %v", err)
}
goExec(t, mainFilename, false) // exec go run
goExec(t, mainFilename, true) // exec go test
}
var issue395TupleAllownil = `package main
import (
"fmt"
"os"
)
//go:generate msgp
//msgp:tuple User
type User struct {
ID []byte ` + "`msgpack:\",allownil\"`" + `
Name string
Email string
IsActive bool
}
func main() {
u := User{ID: nil, Name: "user"}
data, err := u.MarshalMsg(nil)
if err != nil {
fmt.Println("User MarshalMsg failed:", err)
os.Exit(1)
}
var user User
if _, err := user.UnmarshalMsg(data); err != nil {
fmt.Println("User UnmarshalMsg failed:", err)
os.Exit(1)
}
if user.ID != nil || user.Name != "user" {
fmt.Println("User UnmarshalMsg bad user:", user)
os.Exit(1)
}
}
`