shithub: regress

Download patch

ref: 75f5c7d3948bc647b21272c2e0bcbf841fb4d9f7
parent: f9f95b10dfcda3981a820a24e7929af6afbebad0
author: Ori Bernstein <ori@eigenstate.org>
date: Mon May 30 11:05:19 EDT 2022

strchr: add tests (thanks amavect)

--- a/libc/mkfile
+++ b/libc/mkfile
@@ -3,6 +3,7 @@
 TEST=\
 	date\
 	pow\
+	strchr\
 	zones\
 
 <../regress
--- /dev/null
+++ b/libc/strchr.c
@@ -1,0 +1,47 @@
+#include <u.h>
+#include <libc.h>
+void
+chars(void)
+{
+	char *z = "";
+	char *v = "foo bar ss";
+	char *e;
+
+	e = strchr(z, 0);
+	assert(e == z);
+	e = strchr(z, 'z');
+	assert(e == nil);
+	e = strchr(v, L'z');
+	assert(e == nil);
+	e = strchr(v, L'a');
+	assert(e == v+5);
+	e = strchr(v, 0);
+	assert(e == v+10);
+}
+
+void
+runes(void)
+{
+	Rune *z = L"";
+	Rune *c = L"foo βαρ ß";
+	Rune *e;
+
+	e = runestrchr(z, 0);
+	assert(e == z);
+	e = runestrchr(z, L'z');
+	assert(e == nil);
+	e = runestrchr(c, L'z');
+	assert(e == nil);
+	e = runestrchr(c, L'α');
+	assert(e == c+5);
+	e = runestrchr(c, 0);
+	assert(e == c+9);
+}
+
+void
+main(void)
+{
+	chars();
+	runes();
+	exits(nil);
+}