summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorpeter <peter@pmikkelsen.com>2026-09-05 07:22:31 +0000
committerpeter <peter@pmikkelsen.com>2026-09-05 07:22:31 +0000
commit58beb0bc9236234a697a3619c5023100a9574a59 (patch)
tree09078526487e37b000fcfc5305e1967cece90050 /src/lib
parent91ddaf36c86658b852f31dbaa7c1e96a980315c4 (diff)
Full coverage of bin/main.c
FossilOrigin-Name: 91deb642cded69b6c480471147004489a6072ec7c6603286aa6c0ebfc75bf030
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/main.c13
-rw-r--r--src/lib/memory.c6
-rw-r--r--src/lib/syntax.c4
3 files changed, 17 insertions, 6 deletions
diff --git a/src/lib/main.c b/src/lib/main.c
index 161fdde..bba93d3 100644
--- a/src/lib/main.c
+++ b/src/lib/main.c
@@ -228,3 +228,16 @@ aplwc_valid_line(AplwcLine *l)
{
return valid_ref(&l->ref);
}
+
+uint64_t aplwc_simulate_failure_at;
+uint64_t aplwc_simulate_failure_count;
+
+int
+aplwc_simulate_failure(void)
+{
+ aplwc_simulate_failure_count++;
+ if(aplwc_simulate_failure_at && (aplwc_simulate_failure_count >= aplwc_simulate_failure_at))
+ return 1;
+ else
+ return 0;
+}
diff --git a/src/lib/memory.c b/src/lib/memory.c
index 8dbb5f2..03f2056 100644
--- a/src/lib/memory.c
+++ b/src/lib/memory.c
@@ -379,13 +379,10 @@ alloc(struct aplwc *aplwc, size_t size, enum chunk_tag tag)
if(pad)
size += ALIGNMENT - pad;
- if(aplwc->fns.hook_alloc && !aplwc->fns.hook_alloc())
- goto fail;
-
attempt = 0;
retry:
DEBUG(check_mem(aplwc));
- free = find_free(aplwc, size);
+ free = FAILCASE(find_free(aplwc, size), NULL);
if(!free){
switch(attempt++){
case 0:
@@ -399,7 +396,6 @@ retry:
goto retry;
/* fall-through */
default:
-fail:
aplwc->last_error = APLWC_OUT_OF_MEMORY;
return NULL;
}
diff --git a/src/lib/syntax.c b/src/lib/syntax.c
index 6e08d1b..23138ed 100644
--- a/src/lib/syntax.c
+++ b/src/lib/syntax.c
@@ -286,8 +286,10 @@ scan_string(struct aplwc *aplwc, struct string *text, int oneline)
goto end;
tokens = memory_alloc_token_list(aplwc, n);
- if(tokens == NULL)
+ if(tokens == NULL){
+ rc = aplwc->last_error;
goto end;
+ }
tokens->text = text;
tokens->length = n;
scan(text, tokens);