added a test case for getline and getbline
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-12-30 01:02:20 +09:00
parent c76f12f6f6
commit f712a49a8c
3 changed files with 22 additions and 6 deletions

View File

@@ -230,7 +230,7 @@ The C++ classes are inferior to the C equivalents in that they don't allow creat
## What Hawk Is
Hawk is an embeddable awk interpreter with extensions. It can run awk scripts from the CLI or from C/C++ and provides modules like `str::`, `sys::`, `ffi::`, `mysql::`, and `sqlite::`.
Hawk is an embeddable awk interpreter with extensions. It can run hawk/awk scripts from the CLI or from C/C++ and provides modules like `str::`, `sys::`, `ffi::`, `mysql::`, and `sqlite::`.
## Running Hawk
@@ -282,7 +282,6 @@ $ hawk -f script.hawk one two
entry: one two
```
## Values and Types
Hawk is dynamically typed:
@@ -305,8 +304,9 @@ BEGIN {
c = 'X'
bc = @b'x'
bs = @b"\x00\x01"
m = @{"k": 1}
m = @{"k": 1, "j": "hello"}
arr = @["x", "y"]
print hawk::typename(a), hawk::typename(b), hawk::typename(s), hawk::typename(c), hawk::typename(bc), hawk::typename(bs), hawk::typename(m), hawk::typename(arr)
}
```
@@ -409,7 +409,6 @@ BEGIN {
}
```
## Functions
Define functions with `function name(...) { ... }`.

View File

@@ -136,7 +136,7 @@ static HAWK_INLINE hawk_oob_t* med3x (hawk_oob_t* a, hawk_oob_t* b, hawk_oob_t*
}
}
void hawk_qsort(void* base, hawk_oow_t nmemb, hawk_oow_t size, hawk_sort_comper_t comper, void* ctx)
void hawk_qsort (void* base, hawk_oow_t nmemb, hawk_oow_t size, hawk_sort_comper_t comper, void* ctx)
{
hawk_oob_t* pa, * pb, * pc, * pd, * pl, * pm, * pn;
int swaptype, swap_cnt;
@@ -388,7 +388,7 @@ loop:
#define REF(x,i) (&((x)[(i)*size]))
void hawk_qsort(void* base, hawk_oow_t nmemb, hawk_oow_t size, void* arg,
void hawk_qsort (void* base, hawk_oow_t nmemb, hawk_oow_t size, void* arg,
int (*compar)(const void*, const void*, void*))
{
hawk_oow_t pivot, start, end;

View File

@@ -3,6 +3,22 @@
@include "tap.inc";
function run_getline_test()
{
@local x, b;
b = "stale ...";
## getlbine must return -1 if the file is not found and reset the variable blank.
x = (getbline b < "/non-existent-dir/non-existent-file.dat");
tap_ensure(x, -1, @SCRIPTNAME, @SCRIPTLINE);
tap_ensure(b, "", @SCRIPTNAME, @SCRIPTLINE);
## getline must return -1 if the file is not found and reset the variable blank.
x = (getline b < "/non-existent-dir/non-existent-file.dat");
tap_ensure(x, -1, @SCRIPTNAME, @SCRIPTLINE);
tap_ensure(b, "", @SCRIPTNAME, @SCRIPTLINE);
}
function run_gc_test ()
{
@@ -31,6 +47,7 @@ function run_gc_test ()
function main()
{
run_getline_test();
run_gc_test();
tap_end ();
}