summaryrefslogtreecommitdiff
path: root/src/test_demo.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-08 16:04:53 +0100
committerskal <pascal.massimino@gmail.com>2026-02-08 16:04:53 +0100
commit06c8c665f0a9e5ac3819004e8d64b1fa323deeb0 (patch)
treefec7d278b1afe7292556415c0fd7244a0d89113b /src/test_demo.cc
parent0f99e09bd4a4bd73c25d0bba9e1954c911fd8be8 (diff)
feat(util): Add CHECK_RETURN macros for recoverable errors
Created check_return.h with hybrid macro system: - CHECK_RETURN_IF: Simple validation with immediate return - CHECK_RETURN_BEGIN/END: Complex validation with cleanup - WARN_IF: Non-fatal warnings - ERROR_MSG: Error message helper Applied to 5 call sites: - asset_manager.cc: 3 procedural generation errors - test_demo.cc: 2 command-line validation errors Unlike FATAL_XXX (which abort), these return to caller for graceful error handling. Messages stripped in STRIP_ALL, control flow preserved. Size impact: ~500 bytes saved in STRIP_ALL builds Tests: 31/31 passing Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/test_demo.cc')
-rw-r--r--src/test_demo.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/test_demo.cc b/src/test_demo.cc
index 87cdd1e..656d0ba 100644
--- a/src/test_demo.cc
+++ b/src/test_demo.cc
@@ -3,6 +3,7 @@
#include "audio/audio.h"
#include "audio/audio_engine.h"
+#include "util/check_return.h"
#include "audio/synth.h"
#include "generated/assets.h" // Note: uses main demo asset bundle
#include "gpu/demo_effects.h"
@@ -181,19 +182,20 @@ int main(int argc, char** argv) {
return 1;
}
} else if (strcmp(argv[i], "--log-peaks") == 0) {
- if (i + 1 < argc) {
- log_peaks_file = argv[++i];
- } else {
- fprintf(stderr, "Error: --log-peaks requires a filename argument\n\n");
+ CHECK_RETURN_BEGIN(i + 1 >= argc, 1)
print_usage(argv[0]);
+ ERROR_MSG("--log-peaks requires a filename argument\n");
return 1;
- }
+ CHECK_RETURN_END
+ log_peaks_file = argv[++i];
} else if (strcmp(argv[i], "--log-peaks-fine") == 0) {
log_peaks_fine = true;
} else {
- fprintf(stderr, "Error: Unknown option '%s'\n\n", argv[i]);
- print_usage(argv[0]);
- return 1;
+ CHECK_RETURN_BEGIN(true, 1)
+ print_usage(argv[0]);
+ ERROR_MSG("Unknown option '%s'\n", argv[i]);
+ return 1;
+ CHECK_RETURN_END
}
}
#else