You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

namespace.t.c 936B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "vm/vm.h"
  2. #include <snow/snow.h>
  3. static struct l2_vm vm = {0};
  4. describe(l2_vm_namespace) {
  5. struct l2_vm_value val = {0};
  6. after_each() {
  7. free(val.ns);
  8. val.ns = NULL;
  9. }
  10. test("basic functionality") {
  11. l2_vm_namespace_set(&val, 100, 50);
  12. l2_vm_namespace_set(&val, 30, 600);
  13. asserteq(l2_vm_namespace_get(&vm, &val, 100), 50);
  14. asserteq(l2_vm_namespace_get(&vm, &val, 30), 600);
  15. }
  16. it("handles duplicates") {
  17. l2_vm_namespace_set(&val, 536, 600);
  18. l2_vm_namespace_set(&val, 100, 400);
  19. l2_vm_namespace_set(&val, 536, 45);
  20. asserteq(l2_vm_namespace_get(&vm, &val, 100), 400);
  21. asserteq(l2_vm_namespace_get(&vm, &val, 536), 45);
  22. }
  23. it("handles a whole bunch of values") {
  24. for (int i = 1; i < 500; ++i) {
  25. l2_vm_namespace_set(&val, i, i + 50);
  26. asserteq(l2_vm_namespace_get(&vm, &val, i), i + 50);
  27. }
  28. for (int i = 1; i < 500; ++i) {
  29. asserteq(l2_vm_namespace_get(&vm, &val, i), i + 50);
  30. }
  31. }
  32. }