From a7c8ab91210e368b8b2f23e1d79d42ad1b364560 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 1 May 2008 20:40:34 +0000 Subject: Testdriver for automated lexer tests. This needs a little more work to verify that the data contained within emitted tokens is as expected. Very trivial testdata to exercise this. svn path=/trunk/libcss/; revision=4115 --- test/testutils.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test/testutils.h') diff --git a/test/testutils.h b/test/testutils.h index c91c5b8..584915b 100644 --- a/test/testutils.h +++ b/test/testutils.h @@ -33,6 +33,7 @@ void __assert2(const char *expr, const char *function, typedef bool (*line_func)(const char *data, size_t datalen, void *pw); static size_t parse_strlen(const char *str, size_t limit); +char *parse_strnchr(const char *str, size_t len, int chr); bool parse_testfile(const char *filename, line_func callback, void *pw); size_t parse_filesize(const char *filename); @@ -94,6 +95,32 @@ size_t parse_strlen(const char *str, size_t limit) return len; } +/** + * Length-limited strchr + * + * \param str String to search in + * \param len Length of string + * \param chr Character to search for + * \return Pointer to character in string, or NULL if not found + */ +char *parse_strnchr(const char *str, size_t len, int chr) +{ + size_t i; + + if (str == NULL) + return NULL; + + for (i = 0; i < len; i++) { + if (str[i] == chr) + break; + } + + if (i == len) + return NULL; + + return (char *) str + i; +} + /** * Read the size of a file * -- cgit v1.2.3