summaryrefslogtreecommitdiffstats
path: root/testing/027_extends.c
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2013-07-19 19:46:35 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2013-07-19 19:46:35 (GMT)
commit5875da6cae352bbcbe64f537ccfcfab08ad98b3f (patch)
tree1f707443b228c25e2d0389133b8e697e88a11426 /testing/027_extends.c
parentea7a639c40a88c0de4baad4c0ffd5ae4b4065969 (diff)
downloadDoxygen-5875da6cae352bbcbe64f537ccfcfab08ad98b3f.zip
Doxygen-5875da6cae352bbcbe64f537ccfcfab08ad98b3f.tar.gz
Doxygen-5875da6cae352bbcbe64f537ccfcfab08ad98b3f.tar.bz2
Added regression test suite
Diffstat (limited to 'testing/027_extends.c')
-rw-r--r--testing/027_extends.c93
1 files changed, 93 insertions, 0 deletions
diff --git a/testing/027_extends.c b/testing/027_extends.c
new file mode 100644
index 0000000..7860abd
--- /dev/null
+++ b/testing/027_extends.c
@@ -0,0 +1,93 @@
+// objective: test the \extends, \implements, \memberof, \private, and \public commands
+// check: struct_object.xml
+// check: struct_vehicle.xml
+// check: struct_car.xml
+// check: struct_truck.xml
+
+/**
+ * \file
+ */
+
+typedef struct Object Object; //!< Object type
+typedef struct Vehicle Vehicle; //!< Vehicle type
+typedef struct Car Car; //!< Car type
+typedef struct Truck Truck; //!< Truck type
+
+/*!
+ * Base object class.
+ */
+struct Object
+{
+ int ref; //!< \private Reference count.
+};
+
+
+/*!
+ * Increments object reference count by one.
+ * \public \memberof Object
+ */
+static Object * objRef(Object *obj);
+
+
+/*!
+ * Decrements object reference count by one.
+ * \public \memberof Object
+ */
+static Object * objUnref(Object *obj);
+
+
+/*!
+ * Vehicle class.
+ * \extends Object
+ */
+struct Vehicle
+{
+ Object base; //!< \protected Base class.
+};
+
+
+/*!
+ * Starts the vehicle.
+ * \public \memberof Vehicle
+ */
+void vehicleStart(Vehicle *obj);
+
+
+/*!
+ * Stops the vehicle.
+ * \public \memberof Vehicle
+ */
+void vehicleStop(Vehicle *obj);
+
+
+/*!
+ * Car class.
+ * \implements Vehicle
+ */
+struct Car
+{
+ Vehicle base; //!< \protected Base class.
+};
+
+
+/*!
+ * Truck class.
+ * \implements Vehicle
+ */
+struct Truck
+{
+ Vehicle base; //!< \protected Base class.
+};
+
+
+/*!
+ * Main function.
+ *
+ * Ref vehicleStart(), objRef(), objUnref().
+ */
+int main(void)
+{
+ Car c;
+ vehicleStart((Vehicle*) &c);
+}
+