MCPcopy Create free account
hub / github.com/apache/fory / TestFory

Function TestFory

go/fory/threadsafe/fory_test.go:28–89  ·  view source on GitHub ↗

TestFory tests the thread-safe Fory wrapper

(t *testing.T)

Source from the content-addressed store, hash-verified

26
27// TestFory tests the thread-safe Fory wrapper
28func TestFory(t *testing.T) {
29 f := New(fory.WithXlang(false), fory.WithRefTracking(true), fory.WithCompatible(false))
30
31 t.Run("BasicSerialization", func(t *testing.T) {
32 data, err := f.Serialize(int32(42))
33 require.NoError(t, err)
34
35 var result int32
36 err = f.Deserialize(data, &result)
37 require.NoError(t, err)
38 require.Equal(t, int32(42), result)
39 })
40
41 t.Run("GenericSerialization", func(t *testing.T) {
42 val := "hello world"
43 data, err := Serialize(f, &val)
44 require.NoError(t, err)
45
46 var result string
47 err = Deserialize(f, data, &result)
48 require.NoError(t, err)
49 require.Equal(t, "hello world", result)
50 })
51
52 t.Run("ConcurrentAccess", func(t *testing.T) {
53 done := make(chan bool, 10)
54 for i := 0; i < 10; i++ {
55 go func(val int32) {
56 data, err := f.Serialize(val)
57 require.NoError(t, err)
58
59 var result int32
60 err = f.Deserialize(data, &result)
61 require.NoError(t, err)
62 require.Equal(t, val, result)
63 done <- true
64 }(int32(i))
65 }
66 for i := 0; i < 10; i++ {
67 <-done
68 }
69 })
70
71 t.Run("ConcurrentGenericAccess", func(t *testing.T) {
72 done := make(chan bool, 10)
73 for i := 0; i < 10; i++ {
74 go func(val int64) {
75 data, err := Serialize(f, &val)
76 require.NoError(t, err)
77
78 var result int64
79 err = Deserialize(f, data, &result)
80 require.NoError(t, err)
81 require.Equal(t, val, result)
82 done <- true
83 }(int64(i * 1000))
84 }
85 for i := 0; i < 10; i++ {

Callers

nothing calls this directly

Calls 8

NewFunction · 0.70
SerializeFunction · 0.70
DeserializeFunction · 0.70
int32Function · 0.50
int64Function · 0.50
SerializeMethod · 0.45
DeserializeMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected