mirror of https://github.com/tidwall/tile38.git
ff48054d3d
This commit fixes a case where a roaming geofence will not fire a "faraway" event when it's supposed to. The fix required rewriting the nearby/faraway detection logic. It is now much more accurate and takes overall less memory, but it's also a little slower per operation because each object proximity is checked twice per update. Once to compare the old object's surrounding, and once to evaulated the new object. The two lists are then used to generate accurate "nearby" and "faraway" results. |
||
---|---|---|
.. | ||
107 | ||
README.md | ||
client_test.go | ||
fence_roaming_test.go | ||
fence_test.go | ||
json_test.go | ||
keys_search_test.go | ||
keys_test.go | ||
mock_test.go | ||
scripts_test.go | ||
stats_test.go | ||
testcmd_test.go | ||
tests_test.go | ||
timeout_test.go |
README.md
Tile38 Integation Testing
- Uses Redis protocol
- The Tile38 data is flushed before every
DoBatch
A basic test operation looks something like:
func keys_SET_test(mc *mockServer) error {
return mc.DoBatch([][]interface{}{
{"SET", "fleet", "truck1", "POINT", 33.0001, -112.0001}, {"OK"},
{"GET", "fleet", "truck1", "POINT"}, {"[33.0001 -112.0001]"},
}
}
Using a custom function:
func keys_MATCH_test(mc *mockServer) error {
return mc.DoBatch([][]interface{}{
{"SET", "fleet", "truck1", "POINT", 33.0001, -112.0001}, {
func(v interface{}) (resp, expect interface{}) {
// v is the value as strings or slices of strings
// test will pass as long as `resp` and `expect` are the same.
return v, "OK"
},
},
}
}