test/test.sod: Test that class initializers work properly.
[sod] / 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 -------------------------------------------------*/