summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/aplwc.h5
-rw-r--r--src/include/aplwc_macros.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/include/aplwc.h b/src/include/aplwc.h
index 459a036..5a6cb79 100644
--- a/src/include/aplwc.h
+++ b/src/include/aplwc.h
@@ -47,9 +47,11 @@ typedef struct { struct aplwc_ref ref; } AplwcValue;
struct aplwc_fns {
void *(*alloc)(size_t, size_t *);
void (*dealloc)(void *);
- int (*hook_alloc)(void);
};
+extern uint64_t aplwc_simulate_failure_at;
+extern uint64_t aplwc_simulate_failure_count;
+
struct aplwc *aplwc_new(struct aplwc_fns, enum aplwc_rc *);
void aplwc_destroy(struct aplwc *);
void aplwc_clear_line(AplwcLine *);
@@ -65,5 +67,6 @@ void aplwc_eval(AplwcLine *, AplwcValue *);
void aplwc_free_value(AplwcValue *);
const char *aplwc_value_string(AplwcValue *);
enum aplwc_rc aplwc_load_module(struct aplwc *, const char *, const char *, int n);
+int aplwc_simulate_failure(void);
#endif /* APLWC_H */
diff --git a/src/include/aplwc_macros.h b/src/include/aplwc_macros.h
index f68fea9..80ada28 100644
--- a/src/include/aplwc_macros.h
+++ b/src/include/aplwc_macros.h
@@ -38,5 +38,7 @@
#define DEBUG(x) ((void)0)
#endif
+#define FAILCASE(x, fail) (aplwc_simulate_failure() ? (fail) : (x))
+#define FAILCASE_X(x, fail, test) ((test) ? (fail) : (x))
#endif /* APLWC_MACROS_H */