chiark / gitweb /
Static instance support.
[sod] / test / test.sod
index 72febd59e741b8b08ec3c60d21c48d48828b362d..5a029cd918771149dbe5e1c4a5fef36b2b7be2bb 100644 (file)
@@ -353,4 +353,26 @@ code c: tests {
   DONE(3);
 }
 
+/*----- Static instances --------------------------------------------------*/
+
+[link = SodObject, nick = st]
+class StaticObject: SodObject {
+  int x, y = 2, z = 3;
+  [readonly = t] void step() { STEP(me->st.x); }
+}
+
+[extern = t] instance StaticObject mystatic: st.x = 0, st.z = 69;
+[const = nil] instance StaticObject otherstatic: st.x = 3, st.y = 42;
+
+code c: tests {
+  prepare("static instance");
+  StaticObject_step(mystatic);
+  if (mystatic->st.y == 2) STEP(1);
+  if (mystatic->st.z == 69) STEP(2);
+  StaticObject_step(otherstatic);
+  if (otherstatic->st.y == 42) STEP(4);
+  if (otherstatic->st.z == 3) STEP(5);
+  DONE(6);
+}
+
 /*----- That's all, folks -------------------------------------------------*/