Sat, 22 Nov 2025 14:27:01 +0100
port old ucx2 tests to ucx3
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2019 Olaf Wintermann. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> #include <errno.h> #include <pthread.h> #include "../util/pool.h" #include "../public/nsapi.h" #include "../util/plist.h" #include "../util/date.h" #include "../daemon/vfs.h" #include "test.h" #include "vfs.h" #include "writer.h" #include "xml.h" #include "webdav.h" #include "uri.h" #include "object.h" #include "io.h" #include "event.h" void register_pg_tests(int argc, char **argv, CxTestSuite *suite); void test() { } // needed for linking WSBool main_is_daemon(void) { return 0; } int main(int argc, char **argv) { pool_init(NULL, NULL, NULL); pblock_init_default_keys(); vfs_init(); //test(); //printf("%s", "Webserver Test Suite\n====================\n\n"); CxTestSuite *suite = cx_test_suite_new("webserver"); // util tests cx_test_register(suite, test_util_uri_escape_alphanum); cx_test_register(suite, test_util_uri_escape_space); cx_test_register(suite, test_util_uri_escape_latin); cx_test_register(suite, test_util_uri_escape_kanji); // event tests cx_test_register(suite, test_evhandler_create); cx_test_register(suite, test_event_send); cx_test_register(suite, test_event_send_multi); // object tests cx_test_register(suite, test_expr_parse_expr_value); cx_test_register(suite, test_expr_parse_expr_neg_value); cx_test_register(suite, test_expr_parse_expr_value_str); cx_test_register(suite, test_expr_parse_expr_value_bool); cx_test_register(suite, test_expr_parse_expr_value_var); cx_test_register(suite, test_expr_parse_expr_not_value); cx_test_register(suite, test_expr_parse_expr_sign_value); cx_test_register(suite, test_expr_parse_expr_compare2values); cx_test_register(suite, test_expr_parse_expr_compare2value_expr); cx_test_register(suite, test_expr_parse_expr_compare2expr_value); cx_test_register(suite, test_expr_parse_expr_bracket); cx_test_register(suite, test_expr_op_defined_simple); cx_test_register(suite, test_expr_op_defined); cx_test_register(suite, test_expr_op_file_exists_simple); cx_test_register(suite, test_expr_parse_expr_func_arg0); cx_test_register(suite, test_expr_parse_expr_func_arg1); cx_test_register(suite, test_expr_parse_expr_func_arg3); cx_test_register(suite, test_expr_parse_expr_func_expr1); cx_test_register(suite, test_expr_parse_expr_func_expr2); // io tests cx_test_register(suite, test_io_http_stream_parse_chunk_header_hdronly_first); cx_test_register(suite, test_io_http_stream_parse_chunk_header_hdronly); cx_test_register(suite, test_io_http_stream_parse_chunk_header_hdronly_seq_fail); cx_test_register(suite, test_io_http_stream_parse_chunk_header_hdr_data); cx_test_register(suite, test_io_http_stream_parse_chunk_header_empty); cx_test_register(suite, test_io_http_stream_parse_chunk_header_partial_first); cx_test_register(suite, test_io_http_stream_parse_chunk_header_partial); cx_test_register(suite, test_io_http_stream_parse_chunk_header_invalid); cx_test_register(suite, test_io_http_stream_parse_chunk_header_zero); cx_test_register(suite, test_io_httpstream_write); cx_test_register(suite, test_io_httpstream_chunked_write); cx_test_register(suite, test_io_httpstream_chunked_write_end); cx_test_register(suite, test_io_httpstream_chunked_write_xx); cx_test_register(suite, test_io_httpstream_chunked_write_partial_header); cx_test_register(suite, test_io_httpstream_chunked_write_partial_data); cx_test_register(suite, test_io_httpstream_chunked_write_partial_trailer); cx_test_register(suite, test_io_httpstream_chunked_write_partial_trailer_partial_header); cx_test_register(suite, test_io_httpstream_chunked_write_data_2x); cx_test_register(suite, test_io_httpstream_chunked_write_xx_limit); // vfs tests cx_test_register(suite, test_vfs_open); cx_test_register(suite, test_vfs_mkdir); cx_test_register(suite, test_vfs_opendir); cx_test_register(suite, test_vfs_readdir); cx_test_register(suite, test_vfs_unlink); cx_test_register(suite, test_vfs_rmdir); // writer tests cx_test_register(suite, test_writer_putc); cx_test_register(suite, test_writer_flush); cx_test_register(suite, test_writer_put); // xml tests cx_test_register(suite, test_wsxml_iterator); cx_test_register(suite, test_wsxml_get_required_namespaces); cx_test_register(suite, test_wsxml_write_nodes); cx_test_register(suite, test_wsxml_nslist2string); cx_test_register(suite, test_wsxml_string2nslist); // webdav tests cx_test_register(suite, test_webdav_plist_add); cx_test_register(suite, test_webdav_plist_size); cx_test_register(suite, test_propfind_parse); cx_test_register(suite, test_proppatch_parse); cx_test_register(suite, test_lock_parse); cx_test_register(suite, test_rqbody2buffer); cx_test_register(suite, test_webdav_plist_iterator); cx_test_register(suite, test_webdav_plist_iterator_remove_current); cx_test_register(suite, test_msresponse_addproperty); cx_test_register(suite, test_webdav_propfind_init); cx_test_register(suite, test_webdav_op_propfind_begin); cx_test_register(suite, test_webdav_op_propfind_children); cx_test_register(suite, test_proppatch_msresponse); cx_test_register(suite, test_msresponse_addproperty_with_errors); cx_test_register(suite, test_webdav_op_proppatch); cx_test_register(suite, test_webdav_vfs_op_do); cx_test_register(suite, test_webdav_delete); // webdav methods cx_test_register(suite, test_webdav_propfind); cx_test_register(suite, test_webdav_proppatch); cx_test_register(suite, test_webdav_put); // plugin tests #ifdef ENABLE_POSTGRESQL register_pg_tests(argc, argv, suite); #endif // run tests cx_test_run_stdout(suite); fflush(stdout); return EXIT_SUCCESS; }