QMCkl test

This file is the main program of the unit tests. The tests rely on the $μ$unit framework, which is provided as a git submodule.

First, we use a script to find the list of all the produced test files: We generate the function headers

echo "#+NAME: headers"
echo "#+BEGIN_SRC C :tangle no"
for file in $files
do
  routine=${file%.c}
  echo "MunitResult ${routine}();"
done
echo "#+END_SRC"
MunitResult test_qmckl_ao();
MunitResult test_qmckl_context();
MunitResult test_qmckl_distance();
MunitResult test_qmckl_memory();

and the required function calls:

echo "#+NAME: calls"
echo "#+BEGIN_SRC C :tangle no"
for file in $files
do
  routine=${file%.c}
  echo "  { (char*) \"${routine}\", ${routine}, NULL,NULL,MUNIT_TEST_OPTION_NONE,NULL},"
done
echo "#+END_SRC"
{ (char*) "test_qmckl_ao", test_qmckl_ao, NULL,NULL,MUNIT_TEST_OPTION_NONE,NULL},
{ (char*) "test_qmckl_context", test_qmckl_context, NULL,NULL,MUNIT_TEST_OPTION_NONE,NULL},
{ (char*) "test_qmckl_distance", test_qmckl_distance, NULL,NULL,MUNIT_TEST_OPTION_NONE,NULL},
{ (char*) "test_qmckl_memory", test_qmckl_memory, NULL,NULL,MUNIT_TEST_OPTION_NONE,NULL},
#include "qmckl.h"
#include "munit.h"
MunitResult test_qmckl_ao();
MunitResult test_qmckl_context();
MunitResult test_qmckl_distance();
MunitResult test_qmckl_memory();

int main(int argc, char* argv[MUNIT_ARRAY_PARAM(argc + 1)]) {
  static MunitTest test_suite_tests[] =
    {
{ (char*) "test_qmckl_ao", test_qmckl_ao, NULL,NULL,MUNIT_TEST_OPTION_NONE,NULL},
{ (char*) "test_qmckl_context", test_qmckl_context, NULL,NULL,MUNIT_TEST_OPTION_NONE,NULL},
{ (char*) "test_qmckl_distance", test_qmckl_distance, NULL,NULL,MUNIT_TEST_OPTION_NONE,NULL},
{ (char*) "test_qmckl_memory", test_qmckl_memory, NULL,NULL,MUNIT_TEST_OPTION_NONE,NULL},
     { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }
    };

    static const MunitSuite test_suite =
    {
     (char*) "", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE
    };

    return munit_suite_main(&test_suite, (void*) "µnit", argc, argv);
}

Created: 2020-10-31 Sat 18:09

Emacs 25.2.2 (Org mode 8.2.10)

Validate