def _check_full_value(expected): pull_state(key, value_len) actual = get_state(key, value_len) if actual != expected: msg = "Mismatch: actual {}, expected {})".format(actual, expected) print(msg) exit(1)
def test_state_read_write(self): key = "pyStateTest" full_value = b'0123456789' set_state(key, full_value) push_state(key) expected_value_len = 10 value_len = get_state_size(key) self.assertEqual(expected_value_len, value_len) # Read state back in pull_state(key, value_len) actual = get_state(key, value_len) # Check values as expected self.assertEqual(full_value, actual) # Update a segment segment = b'999' offset = 2 segment_len = 3 modified_value = b'0199956789' set_state_offset(key, value_len, offset, segment) # Push and pull push_state(key) pull_state(key, value_len) # Check full value as expected actual = get_state(key, value_len) self.assertEqual(modified_value, actual) # Check getting a segment actual_segment = get_state_offset(key, value_len, offset, segment_len) self.assertEqual(segment, actual_segment)
from pyfaasm.core import check_python_bindings from pyfaasm.core import get_state, get_state_offset, set_state, set_state_offset, push_state, pull_state # Initial check check_python_bindings() # Write and push state key = "pyStateTest" valueLen = 10 fullValue = b'0123456789' set_state(key, fullValue) push_state(key) # Read state back in pull_state(key, valueLen) actual = get_state(key, valueLen) print("In = {} out = {}".format(fullValue, actual)) # Update a segment segment = b'999' offset = 2 segmentLen = 3 modifiedValue = b'0199956789' set_state_offset(key, valueLen, offset, segment) push_state(key) pull_state(key, valueLen) actual = get_state(key, valueLen) actualSegment = get_state_offset(key, valueLen, offset, segmentLen) print("Expected = {} actual = {}".format(modifiedValue, actual)) print("Expected = {} actual = {}".format(segment, actualSegment))