Annotation of embedaddon/lighttpd/src/test_buffer.c, revision 1.1.1.1

1.1       misho       1: #include "first.h"
                      2: 
                      3: #include "buffer.h"
                      4: 
                      5: static void run_buffer_path_simplify(buffer *psrc, buffer *pdest, const char *in, size_t in_len, const char *out, size_t out_len) {
                      6:        buffer_copy_string_len(psrc, in, in_len);
                      7: 
                      8:        buffer_path_simplify(pdest, psrc);
                      9: 
                     10:        if (!buffer_is_equal_string(pdest, out, out_len)) {
                     11:                fprintf(stderr,
                     12:                        "%s.%d: buffer_path_simplify('%s') failed: expected '%s', got '%s'\n",
                     13:                        __FILE__,
                     14:                        __LINE__,
                     15:                        in,
                     16:                        out,
                     17:                        pdest->ptr ? pdest->ptr : "");
                     18:                fflush(stderr);
                     19:                abort();
                     20:        } else {
                     21:                fprintf(stdout,
                     22:                        "%s.%d: buffer_path_simplify('%s') succeeded: got '%s'\n",
                     23:                        __FILE__,
                     24:                        __LINE__,
                     25:                        in,
                     26:                        out);
                     27: 
                     28:                if (psrc != pdest) buffer_copy_buffer(psrc, pdest);
                     29:                buffer_path_simplify(pdest, psrc);
                     30: 
                     31:                if (!buffer_is_equal_string(pdest, out, out_len)) {
                     32:                        fprintf(stderr,
                     33:                                "%s.%d: buffer_path_simplify('%s') failed - not idempotent: expected '%s', got '%s'\n",
                     34:                                __FILE__,
                     35:                                __LINE__,
                     36:                                out,
                     37:                                out,
                     38:                                pdest->ptr ? pdest->ptr : "");
                     39:                        fflush(stderr);
                     40:                        abort();
                     41:                }
                     42:        }
                     43: }
                     44: 
                     45: static void test_buffer_path_simplify_with(buffer *psrc, buffer *pdest) {
                     46:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN(""), CONST_STR_LEN(""));
                     47:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN(" "), CONST_STR_LEN("/"));
                     48:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("/"), CONST_STR_LEN("/"));
                     49:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("//"), CONST_STR_LEN("/"));
                     50:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("abc"), CONST_STR_LEN("/abc"));
                     51:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("abc//"), CONST_STR_LEN("/abc/"));
                     52:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("abc/./xyz"), CONST_STR_LEN("/abc/xyz"));
                     53:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("abc/.//xyz"), CONST_STR_LEN("/abc/xyz"));
                     54:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("abc/../xyz"), CONST_STR_LEN("/xyz"));
                     55:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("/abc/./xyz"), CONST_STR_LEN("/abc/xyz"));
                     56:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("/abc//./xyz"), CONST_STR_LEN("/abc/xyz"));
                     57:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("/abc/../xyz"), CONST_STR_LEN("/xyz"));
                     58:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("abc/../xyz/."), CONST_STR_LEN("/xyz/"));
                     59:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("/abc/../xyz/."), CONST_STR_LEN("/xyz/"));
                     60:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("abc/./xyz/.."), CONST_STR_LEN("/abc/"));
                     61:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("/abc/./xyz/.."), CONST_STR_LEN("/abc/"));
                     62:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("./xyz/.."), CONST_STR_LEN("/"));
                     63:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN(".//xyz/.."), CONST_STR_LEN("/"));
                     64:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("/./xyz/.."), CONST_STR_LEN("/"));
                     65:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN(".././xyz/.."), CONST_STR_LEN("/"));
                     66:        run_buffer_path_simplify(psrc, pdest, CONST_STR_LEN("/.././xyz/.."), CONST_STR_LEN("/"));
                     67: }
                     68: 
                     69: static void test_buffer_path_simplify() {
                     70:        buffer *psrc = buffer_init();
                     71:        buffer *pdest = buffer_init();
                     72: 
                     73:        /* test with using the same buffer and with using different buffers */
                     74:        test_buffer_path_simplify_with(psrc, psrc);
                     75:        test_buffer_path_simplify_with(pdest, psrc);
                     76: 
                     77:        buffer_free(psrc);
                     78:        buffer_free(pdest);
                     79: }
                     80: 
                     81: int main() {
                     82:        test_buffer_path_simplify();
                     83: 
                     84:        return 0;
                     85: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>