hare

[hare] The Hare programming language
git clone https://git.torresjrjr.com/hare.git
Log | Files | Refs | README | LICENSE

+test.ha (1727B)


      1 // SPDX-License-Identifier: MPL-2.0
      2 // (c) Hare authors <https://harelang.org>
      3 
      4 static assert(size(char) == size(schar));
      5 static assert(size(char) == size(uchar));
      6 static assert(size(char) == 1);
      7 static assert(size(short) == size(ushort));
      8 static assert(size(long) == size(ulong));
      9 static assert(size(longlong) == size(ulonglong));
     10 static assert(size(intmax) == size(uintmax));
     11 static assert(size(intptr) == size(uintptr));
     12 static assert(size(ssize) == size(size));
     13 static assert(size(short) <= size(int));
     14 static assert(size(long) >= 4);
     15 static assert(size(longlong) >= 8);
     16 static assert(size(short) >= size(char));
     17 static assert(size(int) >= size(short));
     18 static assert(size(long) >= size(int));
     19 static assert(size(longlong) >= size(long));
     20 
     21 static assert(align(char) == align(schar));
     22 static assert(align(char) == align(uchar));
     23 static assert(align(char) == 1);
     24 static assert(align(short) == align(ushort));
     25 static assert(align(long) == align(ulong));
     26 static assert(align(longlong) == align(ulonglong));
     27 static assert(align(intmax) == align(uintmax));
     28 static assert(align(intptr) == align(uintptr));
     29 static assert(align(ssize) == align(size));
     30 
     31 @test fn strings() void = {
     32 	let s = fromstr("hello!");
     33 	defer free(s);
     34 	assert(tostr(s)! == "hello!");
     35 	let s = nulstr("hello!\0");
     36 	assert(tostr(s)! == "hello!");
     37 };
     38 
     39 @test fn strlen() void = {
     40 	assert(strlen(nulstr("hello!\0")) == 6);
     41 	assert(strlen(nulstr("\0")) == 0);
     42 };
     43 
     44 @test fn strnlen() void = {
     45 	assert(strnlen(nulstr("hello!\0"), 10) == 6);
     46 	assert(strnlen(nulstr("hello!\0"), 6) == 6);
     47 	assert(strnlen(nulstr("hello!\0"), 4) == 4);
     48 	assert(strnlen(nulstr("hello!\0"), 0) == 0);
     49 	assert(strnlen(nulstr("\0"), 1) == 0);
     50 	assert(strnlen(null: *const char, 0) == 0);
     51 };