]> git.draconx.ca Git - cdecl99.git/blobdiff - t/test.h
cdecl99: Optimize print_version a bit.
[cdecl99.git] / t / test.h
index 5ffe291e14c22112fda985226546c7cfb118947a..2d77abc5d3e84e9d0368347c8194a2cf88b04507 100644 (file)
--- a/t/test.h
+++ b/t/test.h
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2012, 2020 Nick Bowler
+ * Copyright © 2012, 2020, 2022-2023 Nick Bowler
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -43,7 +43,6 @@ void test_explain_decl(struct cdecl *decl);
 
 bool strict_strtoul(unsigned long *val, const char *str, int base);
 
-void test_print_version(const char *program);
 void test_print_options(const struct option *lopts);
 
 /*
@@ -59,13 +58,22 @@ struct test_rng *test_rng_alloc(const char *seed);
 void test_rng_free(struct test_rng *rng);
 
 /*
- * Return a random value uniformly on the half-open interval [0,1)
+ * Return a random integer uniformly on the closed interval [0, limit-1]
  */
-double test_rng_uniform(struct test_rng *rng);
+unsigned test_rng_uniform_int(struct test_rng *rng, unsigned limit);
 
 /*
- * Return a random integer uniformly on the closed interval [0, limit-1]
+ * Return false or true with 50% probablility either way.
  */
-unsigned test_rng_uniform_int(struct test_rng *rng, unsigned limit);
+static inline int test_rng_50_50(struct test_rng *rng)
+{
+       return test_rng_uniform_int(rng, 2) == 0;
+}
+
+#define VERSION_NO_COPYRIGHT_SYMBOL 1
+#include "version.h"
+
+#define test_print_version(s) \
+       do_print_version(s " (" PACKAGE_NAME ") " PACKAGE_VERSION)
 
 #endif