Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion mooncake-store/tests/e2e/store_client_e2e.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,19 @@ def make_payload(seq: int, size: int) -> bytes:
return (seed * repeat)[:size]


def result_exit_code(
put_ok: int, put_fail: int, get_ok: int, get_fail: int, mismatch: int
) -> int:
"""Return a failing status for any incomplete or incorrect I/O workload."""
if mismatch > 0:
return 20
if put_fail > 0 or get_fail > 0:
return 21
if put_ok == 0 or get_ok == 0:
return 22
return 0


def main() -> int:
parser = argparse.ArgumentParser(
description="Continuous MooncakeDistributedStore put/get workload"
Expand Down Expand Up @@ -101,7 +114,9 @@ def main() -> int:
f"get_ok={get_ok} get_fail={get_fail} mismatch={mismatch}",
flush=True,
)
return 0 if mismatch == 0 else 20
exit_code = result_exit_code(put_ok, put_fail, get_ok, get_fail, mismatch)
print(f"workload_exit_code {exit_code}", flush=True)
return exit_code


if __name__ == "__main__":
Expand Down
27 changes: 27 additions & 0 deletions mooncake-store/tests/e2e/test_store_client_e2e_exit_code.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import unittest

from store_client_e2e import result_exit_code


class ResultExitCodeTest(unittest.TestCase):
def test_successful_workload_passes(self) -> None:
self.assertEqual(result_exit_code(10, 0, 10, 0, 0), 0)

def test_put_failures_fail_even_without_mismatches(self) -> None:
self.assertEqual(result_exit_code(0, 5, 0, 0, 0), 21)

def test_get_failures_fail_even_without_mismatches(self) -> None:
self.assertEqual(result_exit_code(10, 0, 9, 1, 0), 21)

def test_mismatch_has_its_own_failure_code(self) -> None:
self.assertEqual(result_exit_code(10, 0, 9, 0, 1), 20)

def test_no_successful_puts_fails(self) -> None:
self.assertEqual(result_exit_code(0, 0, 0, 0, 0), 22)

def test_no_successful_gets_fails(self) -> None:
self.assertEqual(result_exit_code(10, 0, 0, 0, 0), 22)


if __name__ == "__main__":
unittest.main()
Loading