summaryrefslogtreecommitdiff
path: root/dux-demo/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dux-demo/main.cc')
-rw-r--r--dux-demo/main.cc32
1 files changed, 21 insertions, 11 deletions
diff --git a/dux-demo/main.cc b/dux-demo/main.cc
index c67d5de..94768ba 100644
--- a/dux-demo/main.cc
+++ b/dux-demo/main.cc
@@ -47,7 +47,7 @@ static_assert([] {
static_assert(chk(::dux::sig::io, SIGIO));
static_assert(chk(::dux::sig::intr, SIGINT));
static_assert(chk(::dux::sig::kill, SIGKILL));
- static_assert(chk(::dux::sig::pipe, SIGPIPE));
+ static_assert(chk(::dux::sig::file, SIGPIPE));
static_assert(chk(::dux::sig::prof, SIGPROF));
static_assert(chk(::dux::sig::quit, SIGQUIT));
static_assert(chk(::dux::sig::segv, SIGSEGV));
@@ -77,20 +77,20 @@ static_assert([] {
extern "C" auto ctest(void const * params) -> void;
extern "C" auto dux_main(::dux::mainparams const * const restrict _params) -> ::dux::stat {
- if (_params->num() == dux_uwrdl(0x0)) {::dux::dbglog("dux :: demo :: No parameters!\n");}
- else {for (auto n {dux_uwrdl(0x0)};n < _params->num();++n) {::dux::dbglog("dux :: demo :: Parameter #%zu: %s\n",n + dux_uwrdl(0x1),_params->param(n).ptr);}}
+ if (_params->num() == dux_uwrdl(0x0)) {::dux::dbglog("dux.demo :: No parameters!\n");}
+ else {for (auto n {dux_uwrdl(0x0)};n < _params->num();++n) {::dux::dbglog("dux.demo :: Parameter #%zu: %s\n",n + dux_uwrdl(0x1),_params->param(n).ptr);}}
{
constexpr auto estim {dux_uint64l(0x100)};
- ::dux::dbglog("Trying to roll two identical 8-bit numbers in a row. Estimated number of tries: " dux_printfuint64 ".\n",estim);
+ ::dux::dbglog("dux.demo :: Trying to roll two identical 8-bit numbers in a row. Estimated number of tries: " dux_printfuint64 ".\n",estim);
auto num0 {::dux::rnd<::dux::uint8>()};
auto num1 {::dux::rnd<::dux::uint8>()};
for (auto n = dux_uint64l(0x1);;++n) {
if (num0 == num1) [[unlikely]] {
- ::dux::dbglog("Done! Took " dux_printfuint64 " attempts (estimated: " dux_printfuint64 ") to roll the same 8-bit number (" dux_printfuint8 ") two times in a row.\n",n,estim,num0);
- ::dux::dbglog("Odds: %f%%",((double)n / (double)estim) * (double)100.0);
+ ::dux::dbglog("dux.demo :: Done! Took " dux_printfuint64 " attempts (estimated: " dux_printfuint64 ") to roll the same 8-bit number (" dux_printfuint8 ") two times in a row.\n",n,estim,num0);
+ ::dux::dbglog("dux.demo :: Odds: %f%%",((double)n / (double)estim) * (double)100.0);
if (n == dux_uint64l(0x45)) {::dux::dbglog(" - Nice!");} /* 69 */
else if (n == dux_uint64l(0x1)) {::dux::dbglog(" - bruh");}
- ::dux::dbglog("\n\nContinuing to the testing stage...\n\n");
+ ::dux::dbglog("\n");
goto test;
}
num0 = ::dux::rnd<::dux::uint8>();
@@ -99,7 +99,7 @@ extern "C" auto dux_main(::dux::mainparams const * const restrict _params) -> ::
}
test:;
auto const time = ::dux::gettime();
- ::dux::dbglog("Current time: " dux_printfsint64 "\n",time);
+ ::dux::dbglog("dux.demo :: Current time: " dux_printfsint64 "\n",time);
dux_ass("",time >= dux_sint64l(0x5C10DFA4));
{
::dux::reseterr();
@@ -156,7 +156,7 @@ test:;
}
{
::dux::seterr(::dux::errcd::test);
- dux_ass("Testing if the test error was set",::dux::geterr() >::dux::errcd::noerr);
+ dux_ass("Error setter didn't work!",::dux::geterr() >::dux::errcd::noerr);
::dux::reseterr();
}
{
@@ -205,15 +205,25 @@ test:;
dux_ass("",arr[dux_uwrdl(0x6)] == false);
dux_ass("",arr[dux_uwrdl(0x7)] == true);
}
+ {
+ dux_ass("",::dux::memeq("ABC",dux_uwrdl(0x3),"ABC"));
+ auto file {::dux::crtfile("dux-io-demo")};
+ file.write("Hello there!");
+ file.open("dux-io-demo",::dux::iotyp::r);
+ auto const dat {file.read(dux_uwrdl(0xC))};
+ dux_ass("",dat.sz() == dux_uwrdl(0xC));
+ dux_ass("",::dux::memeq(dat.craw(),dat.sz(),"Hello there!"));
+ file.close();
+ }
if (::dux::haserr()) [[unlikely]] {
- ::dux::dbglog("dux :: \x1B[91mdemo\x1B[0m :: Got error %S!\n",::dux::errcdnm(::dux::geterr()));
+ ::dux::dbglog("dux.\x1B[91mdemo\x1B[0m :: Got error %S!\n",::dux::errcdnm(::dux::geterr()));
::dux::exit(::dux::stat::err);
}
::ctest(_params);
::dux::onexit([](::dux::stat) {
::dux::onexit([](::dux::stat) {});
dux_ass("",::dux::haserr());
- ::dux::dbglog("dux :: demo :: All tests passed!\n");
+ ::dux::dbglog("dux.demo :: All tests passed!\n");
});
::dux::exit(::dux::stat::ok);
}