0dade151d2
Bootstrap compiler improvements: - Extract findStdlibDir() to remove hardcoded path and deduplicate - Extract prepareProject()/mergeProject() to share code between cmdCheck/cmdBuild - Fix C backend to emit warning on unknown types instead of silent 'int' - Clean up all unused imports across 7 modules - Makefile: add strip, debug target, clean-all, selfhost strip QBE removal: - Remove vendor/qbe/ (74K lines) - Remove compiler/selfhost/qbe_backend.bux, nim_backend.bux Stdlib improvements: - Add Result.bux + Option.bux modules - Fix Json.bux memory leak (removed double String_Copy) - Add missing imports in Crypto.bux (Alloc/Free) and Test.bux (PrintLine/PrintInt) - Clean stale buxc_debug binary
46 lines
826 B
Plaintext
46 lines
826 B
Plaintext
module Std::Test {
|
|
import Std::Io::{PrintLine, PrintInt};
|
|
|
|
extern func bux_exit(code: int);
|
|
extern func bux_assert(cond: int, file: String, line: int, expr: String);
|
|
|
|
func Test_Exit(code: int) {
|
|
bux_exit(code);
|
|
}
|
|
|
|
func Test_Assert(cond: bool) {
|
|
bux_assert(cond as int, "", 0, "");
|
|
}
|
|
|
|
func Test_AssertEqInt(a: int, b: int) {
|
|
if a != b {
|
|
PrintLine("ASSERT_EQ FAILED:");
|
|
PrintInt(a);
|
|
PrintLine(" != ");
|
|
PrintInt(b);
|
|
bux_exit(1);
|
|
}
|
|
}
|
|
|
|
func Test_AssertTrue(cond: bool) {
|
|
if !cond {
|
|
PrintLine("ASSERT_TRUE FAILED");
|
|
bux_exit(1);
|
|
}
|
|
}
|
|
|
|
func Test_AssertFalse(cond: bool) {
|
|
if cond {
|
|
PrintLine("ASSERT_FALSE FAILED");
|
|
bux_exit(1);
|
|
}
|
|
}
|
|
|
|
func Test_Fail(msg: String) {
|
|
PrintLine("FAIL:");
|
|
PrintLine(msg);
|
|
bux_exit(1);
|
|
}
|
|
|
|
}
|