"In the current system, test units are compiled into sub-modules of the module in which they appear. Few Prolog systems allow for sub-modules and therefore ports may have to fall-back to inject the code in the surrounding module."
But SWI Prolog does not have nested modules (or does it?). Does this just mean the module name is a concatenation of the hosting module and the string "plunit" (for example?).
Same as SCIStus actually: