MCPcopy
hub / github.com/gofiber/fiber / TestSharedState_PreforkSafeWithSharedStorage

Function TestSharedState_PreforkSafeWithSharedStorage

shared_state_test.go:165–212  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

163}
164
165func TestSharedState_PreforkSafeWithSharedStorage(t *testing.T) {
166 t.Parallel()
167
168 store := newSharedStateMemoryStorage(t)
169 workerA := New(Config{AppName: "prefork-app", SharedStorage: store})
170 workerB := New(Config{AppName: "prefork-app", SharedStorage: store})
171
172 workerA.State().Set("process-only", "from-worker-a")
173 _, ok := workerB.State().Get("process-only")
174 require.False(t, ok)
175
176 payload := Map{"worker": "a", "version": 3}
177 err := workerA.SharedState().SetJSON("cluster-key", payload, time.Minute)
178 require.NoError(t, err)
179
180 err = workerA.SharedState().Set("raw-cluster-key", []byte("raw-value"), time.Minute)
181 require.NoError(t, err)
182
183 var out map[string]any
184 rawJSON, found, err := workerB.SharedState().GetJSON("cluster-key", &out)
185 require.NoError(t, err)
186 require.True(t, found)
187 require.NotNil(t, rawJSON)
188 require.Equal(t, "a", out["worker"])
189 require.EqualValues(t, 3, out["version"])
190
191 raw, found, err := workerB.SharedState().Get("raw-cluster-key")
192 require.NoError(t, err)
193 require.True(t, found)
194 require.Equal(t, []byte("raw-value"), raw)
195
196 has, err := workerB.SharedState().Has("cluster-key")
197 require.NoError(t, err)
198 require.True(t, has)
199
200 err = workerB.SharedState().Delete("cluster-key")
201 require.NoError(t, err)
202
203 has, err = workerA.SharedState().Has("cluster-key")
204 require.NoError(t, err)
205 require.False(t, has)
206
207 require.NoError(t, workerA.SharedState().Delete("raw-cluster-key"))
208 raw, found, err = workerB.SharedState().Get("raw-cluster-key")
209 require.NoError(t, err)
210 require.Nil(t, raw)
211 require.False(t, found)
212}
213
214func TestSharedState_ExplicitSerializationError(t *testing.T) {
215 t.Parallel()

Callers

nothing calls this directly

Calls 10

SharedStateMethod · 0.80
GetJSONMethod · 0.80
NewFunction · 0.70
SetMethod · 0.65
StateMethod · 0.65
GetMethod · 0.65
DeleteMethod · 0.65
SetJSONMethod · 0.45
HasMethod · 0.45

Tested by

no test coverage detected