File: xpc_darwin_test.go

package info (click to toggle)
golang-github-paypal-gatt 0.0~git20151011.4ae819d-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 464 kB
  • sloc: ansic: 83; asm: 18; makefile: 2
file content (106 lines) | stat: -rw-r--r-- 2,005 bytes parent folder | download
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package xpc

import (
	"testing"
)

func CheckUUID(t *testing.T, v interface{}) UUID {
	if uuid, ok := v.(UUID); ok {
		return uuid
	} else {
		t.Errorf("not a UUID: %#v\n", v)
		return uuid
	}
}

func TestConvertUUID(t *testing.T) {
	uuid := MakeUUID("00112233445566778899aabbccddeeff")

	xv := goToXpc(uuid)
	v := xpcToGo(xv)

	xpc_release(xv)

	uuid2 := CheckUUID(t, v)

	if uuid != uuid2 {
		t.Errorf("expected %#v got %#v\n", uuid, uuid2)
	}
}

func TestConvertSlice(t *testing.T) {
	arr := []string{"one", "two", "three"}

	xv := goToXpc(arr)
	v := xpcToGo(xv)

	xpc_release(xv)

	if arr2, ok := v.(array); !ok {
		t.Errorf("not an array: %#v\n", v)
	} else if len(arr) != len(arr2) {
		t.Errorf("expected %#v got %#v\n", arr, arr2)
	} else {
		for i := range arr {
			if arr[i] != arr2[i] {
				t.Errorf("expected array[%d]: %#v got %#v\n", i, arr[i], arr2[i])
			}
		}
	}
}

func TestConvertSliceUUID(t *testing.T) {
	arr := []UUID{MakeUUID("0000000000000000"), MakeUUID("1111111111111111"), MakeUUID("2222222222222222")}

	xv := goToXpc(arr)
	v := xpcToGo(xv)

	xpc_release(xv)

	if arr2, ok := v.(array); !ok {
		t.Errorf("not an array: %#v\n", v)
	} else if len(arr) != len(arr2) {
		t.Errorf("expected %#v got %#v\n", arr, arr2)
	} else {
		for i := range arr {
			uuid1 := CheckUUID(t, arr[i])
			uuid2 := CheckUUID(t, arr2[i])

			if uuid1 != uuid2 {
				t.Errorf("expected array[%d]: %#v got %#v\n", i, arr[i], arr2[i])
			}
		}
	}
}

func TestConvertMap(t *testing.T) {
	d := dict{
		"number": int64(42),
		"text":   "hello gopher",
		"uuid":   MakeUUID("aabbccddeeff00112233445566778899"),
	}

	xv := goToXpc(d)
	v := xpcToGo(xv)

	xpc_release(xv)

	if d2, ok := v.(dict); !ok {
		t.Errorf("not a map: %#v", v)
	} else if len(d) != len(d2) {
		t.Errorf("expected %#v got %#v\n", d, d2)
	} else {
		fail := false

		for k, v := range d {
			if v != d2[k] {
				t.Logf("expected map[%s]: %#v got %#v\n", k, v, d2[k])
				fail = true
			}
		}

		if fail {
			t.Error("test failed")
		}
	}
}