aboutsummaryrefslogtreecommitdiff
path: root/test/ui/push
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2026-07-07 23:30:52 +0200
committerPaul Oliver <contact@pauloliver.dev>2026-07-20 04:00:10 +0200
commita61a742245d429b8d085208e249bb3bc80e44fb6 (patch)
treebfa44c45de28f9890e15c5ef98ae8d1cec6e36a9 /test/ui/push
parent55928b51596de4cd1b7a2783529ecda3ff3087ce (diff)
data-tests (WIP)more_tests
Diffstat (limited to 'test/ui/push')
-rw-r--r--test/ui/push/ui.c101
-rw-r--r--test/ui/push/vars.py2
2 files changed, 102 insertions, 1 deletions
diff --git a/test/ui/push/ui.c b/test/ui/push/ui.c
index e345658..281f15b 100644
--- a/test/ui/push/ui.c
+++ b/test/ui/push/ui.c
@@ -1,10 +1,111 @@
+#include <json-c/json.h>
+
+#if CORES != 1
+#error
+#endif
+
+struct json_object *g_outputs;
+uint64_t g_rowid;
+
+void append_output(void) {
+ json_object_array_add(json_object_object_get(g_outputs, "rowid"), json_object_new_int64(++g_rowid));
+ json_object_array_add(json_object_object_get(g_outputs, "cycl_0"), json_object_new_int64(g_cores->cycl));
+ json_object_array_add(json_object_object_get(g_outputs, "mall_0"), json_object_new_int64(g_cores->mall));
+ json_object_array_add(json_object_object_get(g_outputs, "pnum_0"), json_object_new_int64(g_cores->pnum));
+ json_object_array_add(json_object_object_get(g_outputs, "pfst_0"), json_object_new_int64(g_cores->pfst));
+ json_object_array_add(json_object_object_get(g_outputs, "plst_0"), json_object_new_int64(g_cores->plst));
+ json_object_array_add(json_object_object_get(g_outputs, "amb0_0"), json_object_new_int64(g_cores->amb0));
+ json_object_array_add(json_object_object_get(g_outputs, "amb1_0"), json_object_new_int64(g_cores->amb1));
+ json_object_array_add(json_object_object_get(g_outputs, "emb0_0"), json_object_new_int64(g_cores->emb0));
+ json_object_array_add(json_object_object_get(g_outputs, "emb1_0"), json_object_new_int64(g_cores->emb1));
+ json_object_array_add(json_object_object_get(g_outputs, "eliv_0"), json_object_new_int64(g_cores->eliv));
+ json_object_array_add(json_object_object_get(g_outputs, "edea_0"), json_object_new_int64(g_cores->edea));
+ json_object_array_add(json_object_object_get(g_outputs, "wmb0_0"), json_object_new_int64(g_cores->wmb0));
+ json_object_array_add(json_object_object_get(g_outputs, "wmb1_0"), json_object_new_int64(g_cores->wmb1));
+ json_object_array_add(json_object_object_get(g_outputs, "wdea_0"), json_object_new_int64(g_cores->wdea));
+
+#define EVENT_ARRAY(core, index, ev) \
+ json_object_array_add(json_object_object_get(g_outputs, #ev EVENT_ARRAYS_SIZE_COL_MARKER #core), json_object_new_int64(g_cores[core].ev##_blob_size)); \
+ for (uint64_t i = 0; i < MVEC_SIZE; i++) { \
+ json_object_array_add(json_object_object_get(g_outputs, #ev "_" #core), json_object_new_int64(g_cores->ev##a[i])); \
+ }
+ EVENT_ARRAYS(0)
+#undef EVENT_ARRAY
+
+#define ARCH_EVENT_ARRAY(core, index, ev) \
+ json_object_array_add(json_object_object_get(g_outputs, #ev EVENT_ARRAYS_SIZE_COL_MARKER #core), json_object_new_int64(g_cores[core].ev##_blob_size)); \
+ for (uint64_t i = 0; i < MVEC_SIZE; i++) { \
+ json_object_array_add(json_object_object_get(g_outputs, #ev "_" #core), json_object_new_int64(g_cores->ev##a[i])); \
+ }
+ ARCH_EVENT_ARRAYS(0)
+#undef ARCH_EVENT_ARRAY
+
+#define INST(core, pref, index, label, mnemonic, symbol) \
+ json_object_array_add(json_object_object_get(g_outputs, #label "_" #pref "_" #core), json_object_new_int64(g_cores->i##pref[index]));
+#define INST_EVENT_ARRAY(core, index, iv) \
+ INST_SET(core, iv)
+ INST_EVENT_ARRAYS(0)
+#undef INST_EVENT_ARRAY
+#undef INST
+
+ json_object_array_add(json_object_object_get(g_outputs, "step"), json_object_new_int64(g_steps));
+}
+
int main(void) {
#if defined(COMMAND_NEW)
salis_init();
#elif defined(COMMAND_LOAD)
salis_load();
#endif
+
+ g_outputs = json_object_new_object();
+
+ json_object_object_add(g_outputs, "rowid", json_object_new_array());
+ json_object_object_add(g_outputs, "cycl_0", json_object_new_array());
+ json_object_object_add(g_outputs, "mall_0", json_object_new_array());
+ json_object_object_add(g_outputs, "pnum_0", json_object_new_array());
+ json_object_object_add(g_outputs, "pfst_0", json_object_new_array());
+ json_object_object_add(g_outputs, "plst_0", json_object_new_array());
+ json_object_object_add(g_outputs, "amb0_0", json_object_new_array());
+ json_object_object_add(g_outputs, "amb1_0", json_object_new_array());
+ json_object_object_add(g_outputs, "emb0_0", json_object_new_array());
+ json_object_object_add(g_outputs, "emb1_0", json_object_new_array());
+ json_object_object_add(g_outputs, "eliv_0", json_object_new_array());
+ json_object_object_add(g_outputs, "edea_0", json_object_new_array());
+ json_object_object_add(g_outputs, "wmb0_0", json_object_new_array());
+ json_object_object_add(g_outputs, "wmb1_0", json_object_new_array());
+ json_object_object_add(g_outputs, "wdea_0", json_object_new_array());
+
+#define EVENT_ARRAY(core, index, ev) \
+ json_object_object_add(g_outputs, #ev EVENT_ARRAYS_SIZE_COL_MARKER #core, json_object_new_array()); \
+ json_object_object_add(g_outputs, #ev "_" #core, json_object_new_array());
+ EVENT_ARRAYS(0)
+#undef EVENT_ARRAY
+
+#define ARCH_EVENT_ARRAY(core, index, ev) \
+ json_object_object_add(g_outputs, #ev EVENT_ARRAYS_SIZE_COL_MARKER #core, json_object_new_array()); \
+ json_object_object_add(g_outputs, #ev "_" #core, json_object_new_array());
+ ARCH_EVENT_ARRAYS(0)
+#undef ARCH_EVENT_ARRAY
+
+#define INST(core, pref, index, label, mnemonic, symbol) \
+ json_object_object_add(g_outputs, #label "_" #pref "_" #core, json_object_new_array());
+#define INST_EVENT_ARRAY(core, index, iv) \
+ INST_SET(core, iv)
+ INST_EVENT_ARRAYS(0)
+#undef INST_EVENT_ARRAY
+#undef INST
+
+ json_object_object_add(g_outputs, "step", json_object_new_array());
+
+ append_output();
salis_step(DATA_PUSH_INTERVAL);
+ append_output();
+ salis_step(1);
+
+ json_object_to_file(SIM_DIR "/outputs.json", g_outputs);
+ json_object_put(g_outputs);
+
salis_save(SIM_PATH);
salis_free();
return 0;
diff --git a/test/ui/push/vars.py b/test/ui/push/vars.py
index 9c2a9f3..ca0e801 100644
--- a/test/ui/push/vars.py
+++ b/test/ui/push/vars.py
@@ -1,3 +1,3 @@
flags = set()
defines = set()
-links = set()
+links = {"-ljson-c"}