TABLIX(1)

πŸ“¦
version 0.3.5 Β· 2 versions
, in ubuntu jammy

✨ TABLIX(1) β€” bestie edition ✨

okay so you're in the Tablix User's Manual section, and today we're talking about TABLIX(1). buckle up πŸŽ€


πŸ’– NAME πŸ’–

tablix2_test β€” the front-end for the Tablix testing framework, aka the lil bestie that checks ur timetables actually work πŸ’…


🌸 SYNOPSIS 🌸

tablix2_test command options file

πŸ¦‹ DESCRIPTION πŸ¦‹

So, Tablix is this genuinely iconic free software kernel for solving general timetabling problems. it uses a coarse-grained parallel genetic algorithm plus a bunch of other techniques to build sensible timetables out of XML-formatted problem descriptions. it can run on just one host, or across a heterogeneous parallel virtual machine using PVM3. lowkey main character energy fr fr πŸ‘‘

the Tablix testing framework is how you write simple automated tests that verify whether a module and/or kernel is doing what it's supposed to. the framework is made of two things: a special export module export_ttf.so and a utility program called tablix2_test. every single automated test case lives in one file, written in the standard Tablix XML configuration syntax, with a special XML comment block inside it containing a short program written in Scheme. yes, Scheme. it's giving retro but honestly it slays ✨

so here's the workflow: tablix2_test first processes each file containing the test case with tablix or tablix2 (whichever one matches the detected version of the XML format), and then uses the export_ttf.so module to run the Scheme code included in that same file, to verify whether the kernel actually found a correct solution. obsessed with the efficiency honestly 🫢

for each test case, tablix2_test reports one of the following results:

  • passed β€” the file contained XML syntax for the 0.2.x branch of kernels. tablix2 found a solution to the test problem and the Scheme code confirmed it's correct. periodt πŸ’…
  • passed (old syntax) β€” the file contained XML syntax for the 0.1.x branch of kernels. tablix found a solution to the test problem and the Scheme code confirmed it's correct.
  • skipped β€” tablix or tablix2 executable was not found, so the test problem got skipped. πŸ™ˆ
  • FAILED (tablix crashed) β€” Tablix did not find a solution to the test problem. the reason could be a syntax error in the XML configuration file, an error in the module, or a kernel crash. check any other displayed error messages for details. πŸ’€
  • FAILED (most likely scheme syntax error) β€” the Scheme interpreter returned an error. the reason could be a syntax error or a bug in the Scheme code block. check any other displayed error messages for details. 😭
  • FAILED (ttf test failed) β€” Tablix found a solution to the test problem, but the Scheme code did not confirm it. so close bestie πŸ’”
  • FAILED (unknown error) β€” Tablix returned an unknown return value. you are probably running an outdated tablix2_test. not me being the problem πŸ™ˆ
⚠️ since tablix or tablix2 gets run as part of the process, the pvmd daemon must be running and be configured properly before you run tablix2_test. no daemon, no vibes. set that up first bestie 🧚

πŸ’… OPTIONS πŸ’…

  • tablix2_test --file "OPTIONS" FILE β€” performs once a single test stored in the XML configuration file FILE. the OPTIONS parameter is mandatory and contains the options that will be passed to the tablix or tablix2 process.
  • tablix2_test --dir "OPTIONS" DIRECTORY β€” performs once all tests stored in XML configuration files in the directory DIRECTORY. the OPTIONS parameter is mandatory and contains the options that will be passed to the tablix or tablix2 process.
  • tablix2_test --multi-file N "OPTIONS" FILE β€” same as --file, but performs each test N times. the test is considered passed only if none of the N repetitions of the test fail.
  • tablix2_test --multi-dir N "OPTIONS" DIRECTORY β€” same as --dir, but performs each test in the directory N times. the test is considered passed only if none of the N repetitions of the test fail.

🌈 EXAMPLES 🌈

to perform an exhaustive test of all kernel features and all modules in the distribution, run this from the top of the Tablix source tree:

tablix2_test --multi-dir 7 "" ttf/tests

a correctly working Tablix installation should pass all the tests stored in the ttf/tests/ subdirectory β€” except for the error-1.xml, error-2.xml and error-3.xml tests, which exist specifically to verify that the testing framework correctly reports errors. those ones are supposed to fail, so don't panic πŸŽ€


πŸ’€ BUGS πŸ’€

the tablix2_test utility depends on a number of common UNIX programs (mktemp, grep, sed, awk, ...) that may not be available on all systems. and ngl, the script is not currently capable of properly detecting if any required programs are missing. so if it's acting weird, check that ur system has the basics fr fr 😭


🫢 AUTHOR 🫢

Tomaz Solc (tomaz.solc@tablix.org)


πŸ‘‘ SEE ALSO πŸ‘‘

tablix2(1), Tablix User's Manual, Tablix modules HOWTO


and that's the whole page bestie πŸ’– written by Tomaz Solc, dated 2005-09-03, from the TABLIX(1) manual. go forth and pass ur tests, you got this ⭐

πŸ“¦ where this page comes from