+ Application true_app("true");
+
+ test_compare(Application::SUCCESS, true_app.run());
+ test_compare(Application::SUCCESS, true_app.wait());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t application_gdb_true_BINARY2(void *)
+{
+ test_skip(0, access("/usr/bin/gdb", X_OK ));
+ Application true_app("true");
+ true_app.use_gdb();
+
+ test_compare(Application::SUCCESS, true_app.run());
+ test_compare(Application::SUCCESS, true_app.wait());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t application_gdb_true_BINARY(void *)
+{
+ test_skip(0, access("/usr/bin/gdb", X_OK ));
+ Application true_app("true");
+ true_app.use_gdb();
+
+ const char *args[]= { "--fubar", 0 };
+ test_compare(Application::SUCCESS, true_app.run(args));
+ test_compare(Application::SUCCESS, true_app.wait());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t application_true_fubar_BINARY(void *)
+{
+ Application true_app("true");
+
+ const char *args[]= { "--fubar", 0 };
+ test_compare(Application::SUCCESS, true_app.run(args));
+ test_compare(Application::SUCCESS, true_app.wait());
+ test_compare(0, true_app.stdout_result().size());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t application_doesnotexist_BINARY(void *)
+{
+
+ test_skip_valgrind();
+ Application true_app("doesnotexist");
+ true_app.will_fail();
+
+ const char *args[]= { "--fubar", 0 };
+#if defined(TARGET_OS_OSX) && TARGET_OS_OSX
+ test_compare(Application::INVALID, true_app.run(args));
+#else
+ test_compare(Application::SUCCESS, true_app.run(args));
+ test_compare(Application::INVALID, true_app.wait(false));
+#endif
+
+ test_compare(0, true_app.stdout_result().size());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t application_true_fubar_eq_doh_BINARY(void *)
+{
+ Application true_app("true");
+
+ const char *args[]= { "--fubar=doh", 0 };
+ test_compare(Application::SUCCESS, true_app.run(args));
+ test_compare(Application::SUCCESS, true_app.wait());
+ test_compare(0, true_app.stdout_result().size());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t application_true_fubar_eq_doh_option_BINARY(void *)
+{
+ Application true_app("true");
+
+ true_app.add_option("--fubar=", "doh");
+
+ test_compare(Application::SUCCESS, true_app.run());
+ test_compare(Application::SUCCESS, true_app.wait());
+ test_compare(0, true_app.stdout_result().size());
+
+ return TEST_SUCCESS;
+}
+
+
+static test_return_t GET_TEST(void *)
+{
+ libtest::http::GET get("http://foo.example.com/");
+
+ test_compare(false, get.execute());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t POST_TEST(void *)
+{
+ libtest::vchar_t body;
+ libtest::http::POST post("http://foo.example.com/", body);
+
+ test_compare(false, post.execute());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t TRACE_TEST(void *)
+{
+ libtest::vchar_t body;
+ libtest::http::TRACE trace("http://foo.example.com/", body);
+
+ test_compare(false, trace.execute());
+
+ return TEST_SUCCESS;
+}
+
+
+static test_return_t vchar_t_TEST(void *)
+{
+ libtest::vchar_t response;
+ libtest::make_vector(response, test_literal_param("fubar\n"));
+ test_compare(response, response);
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t vchar_t_compare_neg_TEST(void *)
+{
+ libtest::vchar_t response;
+ libtest::vchar_t response2;
+ libtest::make_vector(response, test_literal_param("fubar\n"));
+ libtest::make_vector(response2, test_literal_param(__func__));
+ test_true(response != response2);
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t application_echo_fubar_BINARY(void *)
+{
+ Application true_app("echo");
+
+ const char *args[]= { "fubar", 0 };
+ test_compare(Application::SUCCESS, true_app.run(args));
+ test_compare(Application::SUCCESS, true_app.wait());
+
+ while (true_app.slurp() == false) {} ;
+
+ libtest::vchar_t response;
+ make_vector(response, test_literal_param("fubar\n"));
+ test_compare(response, true_app.stdout_result());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t application_echo_fubar_BINARY2(void *)
+{
+ Application true_app("echo");
+
+ true_app.add_option("fubar");
+
+ test_compare(Application::SUCCESS, true_app.run());
+ test_compare(Application::SUCCESS, true_app.wait(false));
+
+ libtest::vchar_t response;
+ make_vector(response, test_literal_param("fubar\n"));
+ test_compare(response, true_app.stdout_result());
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t true_BINARY(void *)
+{
+ const char *args[]= { 0 };
+ test_compare(EXIT_SUCCESS, exec_cmdline("true", args));
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t true_fubar_BINARY(void *)
+{
+ const char *args[]= { "--fubar", 0 };
+ test_compare(EXIT_SUCCESS, exec_cmdline("true", args));
+
+ return TEST_SUCCESS;
+}
+
+static test_return_t echo_fubar_BINARY(void *)
+{
+ const char *args[]= { "fubar", 0 };
+ test_compare(EXIT_SUCCESS, exec_cmdline("echo", args));