summaryrefslogtreecommitdiffstats
path: root/third_party/lcov/example/example.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/lcov/example/example.c')
-rw-r--r--third_party/lcov/example/example.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/third_party/lcov/example/example.c b/third_party/lcov/example/example.c
new file mode 100644
index 0000000..f9049aa
--- /dev/null
+++ b/third_party/lcov/example/example.c
@@ -0,0 +1,60 @@
+/*
+ * example.c
+ *
+ * Calculate the sum of a given range of integer numbers. The range is
+ * specified by providing two integer numbers as command line argument.
+ * If no arguments are specified, assume the predefined range [0..9].
+ * Abort with an error message if the resulting number is too big to be
+ * stored as int variable.
+ *
+ * This program example is similar to the one found in the GCOV documentation.
+ * It is used to demonstrate the HTML output generated by LCOV.
+ *
+ * The program is split into 3 modules to better demonstrate the 'directory
+ * overview' function. There are also a lot of bloated comments inserted to
+ * artificially increase the source code size so that the 'source code
+ * overview' function makes at least a minimum of sense.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "iterate.h"
+#include "gauss.h"
+
+static int start = 0;
+static int end = 9;
+
+
+int main (int argc, char* argv[])
+{
+ int total1, total2;
+
+ /* Accept a pair of numbers as command line arguments. */
+
+ if (argc == 3)
+ {
+ start = atoi(argv[1]);
+ end = atoi(argv[2]);
+ }
+
+
+ /* Use both methods to calculate the result. */
+
+ total1 = iterate_get_sum (start, end);
+ total2 = gauss_get_sum (start, end);
+
+
+ /* Make sure both results are the same. */
+
+ if (total1 != total2)
+ {
+ printf ("Failure (%d != %d)!\n", total1, total2);
+ }
+ else
+ {
+ printf ("Success, sum[%d..%d] = %d\n", start, end, total1);
+ }
+
+ return 0;
+}