test/test.sod: Test that class initializers work properly.
authorMark Wooding <mdw@distorted.org.uk>
Fri, 6 Jul 2018 23:03:10 +0000 (00:03 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 9 Jul 2018 11:11:39 +0000 (12:11 +0100)
test/test.sod

index 37aa3d2..47e8545 100644 (file)
@@ -303,4 +303,24 @@ code c: tests {
   }
 }
 
+/*----- Metaclass initialization ------------------------------------------*/
+
+[link = SodClass, nick = mycls]
+class MyClass: SodClass {
+  int x = -1, y, z = 2;
+}
+
+[link = SodObject, nick = myobj, metaclass = MyClass]
+class MyObject: SodObject {
+  class mycls.x = 0, mycls.y = 1;
+}
+
+code c: tests {
+  prepare("metaclass, init");
+  STEP(MyObject__cls_obj->mycls.x);
+  STEP(MyObject__cls_obj->mycls.y);
+  STEP(MyObject__cls_obj->mycls.z);
+  DONE(3);
+}
+
 /*----- That's all, folks -------------------------------------------------*/