DEF_TEST(Data, reporter) { const char* str = "We the people, in order to form a more perfect union."; const int N = 10; SkAutoTUnref<SkData> r0(SkData::NewEmpty()); SkAutoTUnref<SkData> r1(SkData::NewWithCopy(str, strlen(str))); SkAutoTUnref<SkData> r2(SkData::NewWithProc(new int[N], N*sizeof(int), delete_int_proc, gGlobal)); SkAutoTUnref<SkData> r3(SkData::NewSubset(r1, 7, 6)); assert_len(reporter, r0, 0); assert_len(reporter, r1, strlen(str)); assert_len(reporter, r2, N * sizeof(int)); assert_len(reporter, r3, 6); assert_data(reporter, r1, str, strlen(str)); assert_data(reporter, r3, "people", 6); SkData* tmp = SkData::NewSubset(r1, strlen(str), 10); assert_len(reporter, tmp, 0); tmp->unref(); tmp = SkData::NewSubset(r1, 0, 0); assert_len(reporter, tmp, 0); tmp->unref(); test_cstring(reporter); test_files(reporter); }
int ConfirmSave::test_file(MWindow *mwindow, char *path) { ArrayList<char*> paths; paths.append(path); int result = test_files(mwindow, &paths); paths.remove_all(); return result; }
int main(int argc, char *argv[]) { static const char * const cmdline[] = { QUOTACHECK, "-anug", NULL }; pid_t pid; int r; if (argc > 1) { log_error("This program takes no arguments."); return EXIT_FAILURE; } log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); umask(0022); r = proc_cmdline_parse(parse_proc_cmdline_item, NULL, 0); if (r < 0) log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m"); test_files(); if (!arg_force) { if (arg_skip) return EXIT_SUCCESS; if (access("/run/systemd/quotacheck", F_OK) < 0) return EXIT_SUCCESS; } pid = fork(); if (pid < 0) { r = log_error_errno(errno, "fork(): %m"); goto finish; } if (pid == 0) { /* Child */ (void) reset_all_signal_handlers(); (void) reset_signal_mask(); assert_se(prctl(PR_SET_PDEATHSIG, SIGTERM) == 0); execv(cmdline[0], (char**) cmdline); _exit(1); /* Operational error */ } r = wait_for_terminate_and_warn("quotacheck", pid, true); finish: return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; }
int main(int argc, char *argv[]) { int r; if (argc > 1) { log_error("This program takes no arguments."); return EXIT_FAILURE; } log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); umask(0022); r = proc_cmdline_parse(parse_proc_cmdline_item, NULL, 0); if (r < 0) log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m"); test_files(); if (!arg_force) { if (arg_skip) return EXIT_SUCCESS; if (access("/run/systemd/quotacheck", F_OK) < 0) return EXIT_SUCCESS; } r = safe_fork("(quotacheck)", FORK_RESET_SIGNALS|FORK_DEATHSIG|FORK_LOG|FORK_WAIT, NULL); if (r < 0) goto finish; if (r == 0) { static const char * const cmdline[] = { QUOTACHECK, "-anug", NULL }; /* Child */ execv(cmdline[0], (char**) cmdline); _exit(EXIT_FAILURE); /* Operational error */ } finish: return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; }
int main(int argc, char *argv[]) { if (test_files()) { printf("test files not passed.\n"); } if (test_socket()) { printf("test sockets not passed.\n"); } if (test_sys()) { printf("test system not passed.\n"); } if (test_time()) { printf("test time not passed.\n"); } printf("test passed.\n"); return 0; }
int main(int argc, char *argv[]) { static const char * const cmdline[] = { QUOTACHECK, "-anug", NULL }; pid_t pid; if (argc > 1) { log_error("This program takes no arguments."); return EXIT_FAILURE; } log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); umask(0022); parse_proc_cmdline(parse_proc_cmdline_item); test_files(); if (!arg_force) { if (arg_skip) return EXIT_SUCCESS; if (access("/run/systemd/quotacheck", F_OK) < 0) return EXIT_SUCCESS; } pid = fork(); if (pid < 0) { log_error("fork(): %m"); return EXIT_FAILURE; } else if (pid == 0) { /* Child */ execv(cmdline[0], (char**) cmdline); _exit(1); /* Operational error */ } return wait_for_terminate_and_warn("quotacheck", pid) >= 0 ? EXIT_SUCCESS : EXIT_FAILURE; }
t_list *create_list_folder(int argc, char **argv) { int x; char **tab; t_list *list; t_list *tmp; char *str; x = 0; str = option_main(argc, argv); tab = args_order(argc, argv); list = ft_lstnew(NULL, 0); while (tab[x]) { if (test_files(tab[x], str) == 1) { tmp = ft_lstnew(tab[x], ft_strlen(tab[x]) + 1); ft_lstadd(&list, tmp); } x++; } return (list); }
static int fsck_progress_socket(void) { static const union sockaddr_union sa = { .un.sun_family = AF_UNIX, .un.sun_path = "/run/systemd/fsck.progress", }; int fd, r; fd = socket(AF_UNIX, SOCK_STREAM, 0); if (fd < 0) return log_warning_errno(errno, "socket(): %m"); if (connect(fd, &sa.sa, SOCKADDR_UN_LEN(sa.un)) < 0) { r = log_full_errno(errno == ECONNREFUSED || errno == ENOENT ? LOG_DEBUG : LOG_WARNING, errno, "Failed to connect to progress socket %s, ignoring: %m", sa.un.sun_path); safe_close(fd); return r; } return fd; } int main(int argc, char *argv[]) { _cleanup_close_pair_ int progress_pipe[2] = { -1, -1 }; _cleanup_(sd_device_unrefp) sd_device *dev = NULL; const char *device, *type; bool root_directory; siginfo_t status; struct stat st; int r; pid_t pid; if (argc > 2) { log_error("This program expects one or no arguments."); return EXIT_FAILURE; } log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); umask(0022); r = parse_proc_cmdline(parse_proc_cmdline_item); if (r < 0) log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m"); test_files(); if (!arg_force && arg_skip) { r = 0; goto finish; } if (argc > 1) { device = argv[1]; if (stat(device, &st) < 0) { r = log_error_errno(errno, "Failed to stat %s: %m", device); goto finish; } if (!S_ISBLK(st.st_mode)) { log_error("%s is not a block device.", device); r = -EINVAL; goto finish; } r = sd_device_new_from_devnum(&dev, 'b', st.st_rdev); if (r < 0) { log_error_errno(r, "Failed to detect device %s: %m", device); goto finish; } root_directory = false; } else { struct timespec times[2]; /* Find root device */ if (stat("/", &st) < 0) { r = log_error_errno(errno, "Failed to stat() the root directory: %m"); goto finish; } /* Virtual root devices don't need an fsck */ if (major(st.st_dev) == 0) { log_debug("Root directory is virtual or btrfs, skipping check."); r = 0; goto finish; } /* check if we are already writable */ times[0] = st.st_atim; times[1] = st.st_mtim; if (utimensat(AT_FDCWD, "/", times, 0) == 0) { log_info("Root directory is writable, skipping check."); r = 0; goto finish; } r = sd_device_new_from_devnum(&dev, 'b', st.st_dev); if (r < 0) { log_error_errno(r, "Failed to detect root device: %m"); goto finish; } r = sd_device_get_devname(dev, &device); if (r < 0) { log_error_errno(r, "Failed to detect device node of root directory: %m"); goto finish; } root_directory = true; } r = sd_device_get_property_value(dev, "ID_FS_TYPE", &type); if (r >= 0) { r = fsck_exists(type); if (r < 0) log_warning_errno(r, "Couldn't detect if fsck.%s may be used for %s, proceeding: %m", type, device); else if (r == 0) { log_info("fsck.%s doesn't exist, not checking file system on %s.", type, device); goto finish; } } if (arg_show_progress) { if (pipe(progress_pipe) < 0) { r = log_error_errno(errno, "pipe(): %m"); goto finish; } } pid = fork(); if (pid < 0) { r = log_error_errno(errno, "fork(): %m"); goto finish; } if (pid == 0) { char dash_c[sizeof("-C")-1 + DECIMAL_STR_MAX(int) + 1]; int progress_socket = -1; const char *cmdline[9]; int i = 0; /* Child */ (void) reset_all_signal_handlers(); (void) reset_signal_mask(); assert_se(prctl(PR_SET_PDEATHSIG, SIGTERM) == 0); /* Close the reading side of the progress pipe */ progress_pipe[0] = safe_close(progress_pipe[0]); /* Try to connect to a progress management daemon, if there is one */ progress_socket = fsck_progress_socket(); if (progress_socket >= 0) { /* If this worked we close the progress pipe early, and just use the socket */ progress_pipe[1] = safe_close(progress_pipe[1]); xsprintf(dash_c, "-C%i", progress_socket); } else if (progress_pipe[1] >= 0) { /* Otherwise if we have the progress pipe to our own local handle, we use it */ xsprintf(dash_c, "-C%i", progress_pipe[1]); } else dash_c[0] = 0; cmdline[i++] = "/sbin/fsck"; cmdline[i++] = arg_repair; cmdline[i++] = "-T"; /* * Since util-linux v2.25 fsck uses /run/fsck/<diskname>.lock files. * The previous versions use flock for the device and conflict with * udevd, see https://bugs.freedesktop.org/show_bug.cgi?id=79576#c5 */ cmdline[i++] = "-l"; if (!root_directory) cmdline[i++] = "-M"; if (arg_force) cmdline[i++] = "-f"; if (!isempty(dash_c)) cmdline[i++] = dash_c; cmdline[i++] = device; cmdline[i++] = NULL; execv(cmdline[0], (char**) cmdline); _exit(FSCK_OPERATIONAL_ERROR); } progress_pipe[1] = safe_close(progress_pipe[1]); (void) process_progress(progress_pipe[0]); progress_pipe[0] = -1; r = wait_for_terminate(pid, &status); if (r < 0) { log_error_errno(r, "waitid(): %m"); goto finish; } if (status.si_code != CLD_EXITED || (status.si_status & ~1)) { if (status.si_code == CLD_KILLED || status.si_code == CLD_DUMPED) log_error("fsck terminated by signal %s.", signal_to_string(status.si_status)); else if (status.si_code == CLD_EXITED) log_error("fsck failed with error code %i.", status.si_status); else log_error("fsck failed due to unknown reason."); r = -EINVAL; if (status.si_code == CLD_EXITED && (status.si_status & FSCK_SYSTEM_SHOULD_REBOOT) && root_directory) /* System should be rebooted. */ start_target(SPECIAL_REBOOT_TARGET, "replace-irreversibly"); else if (status.si_code == CLD_EXITED && (status.si_status & (FSCK_SYSTEM_SHOULD_REBOOT | FSCK_ERRORS_LEFT_UNCORRECTED))) /* Some other problem */ start_target(SPECIAL_EMERGENCY_TARGET, "replace"); else { log_warning("Ignoring error."); r = 0; } } else r = 0; if (status.si_code == CLD_EXITED && (status.si_status & FSCK_ERROR_CORRECTED)) (void) touch("/run/systemd/quotacheck"); finish: return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; }
int run_unicode_tests(int test_num) { return test_files(test_num, "UNICODE"); }
int main(int argc, char *argv[]) { const char *cmdline[9]; int i = 0, r = EXIT_FAILURE, q; pid_t pid; siginfo_t status; _cleanup_udev_unref_ struct udev *udev = NULL; _cleanup_udev_device_unref_ struct udev_device *udev_device = NULL; const char *device, *type; bool root_directory; int progress_pipe[2] = { -1, -1 }; char dash_c[2+10+1]; struct stat st; if (argc > 2) { log_error("This program expects one or no arguments."); return EXIT_FAILURE; } log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); umask(0022); q = parse_proc_cmdline(parse_proc_cmdline_item); if (q < 0) log_warning_errno(q, "Failed to parse kernel command line, ignoring: %m"); test_files(); if (!arg_force && arg_skip) return 0; udev = udev_new(); if (!udev) { log_oom(); return EXIT_FAILURE; } if (argc > 1) { device = argv[1]; root_directory = false; if (stat(device, &st) < 0) { log_error_errno(errno, "Failed to stat '%s': %m", device); return EXIT_FAILURE; } udev_device = udev_device_new_from_devnum(udev, 'b', st.st_rdev); if (!udev_device) { log_error("Failed to detect device %s", device); return EXIT_FAILURE; } } else { struct timespec times[2]; /* Find root device */ if (stat("/", &st) < 0) { log_error_errno(errno, "Failed to stat() the root directory: %m"); return EXIT_FAILURE; } /* Virtual root devices don't need an fsck */ if (major(st.st_dev) == 0) return EXIT_SUCCESS; /* check if we are already writable */ times[0] = st.st_atim; times[1] = st.st_mtim; if (utimensat(AT_FDCWD, "/", times, 0) == 0) { log_info("Root directory is writable, skipping check."); return EXIT_SUCCESS; } udev_device = udev_device_new_from_devnum(udev, 'b', st.st_dev); if (!udev_device) { log_error("Failed to detect root device."); return EXIT_FAILURE; } device = udev_device_get_devnode(udev_device); if (!device) { log_error("Failed to detect device node of root directory."); return EXIT_FAILURE; } root_directory = true; } type = udev_device_get_property_value(udev_device, "ID_FS_TYPE"); if (type) { r = fsck_exists(type); if (r == -ENOENT) { log_info("fsck.%s doesn't exist, not checking file system on %s", type, device); return EXIT_SUCCESS; } else if (r < 0) log_warning_errno(r, "fsck.%s cannot be used for %s: %m", type, device); } if (arg_show_progress) if (pipe(progress_pipe) < 0) { log_error_errno(errno, "pipe(): %m"); return EXIT_FAILURE; } cmdline[i++] = "/sbin/fsck"; cmdline[i++] = arg_repair; cmdline[i++] = "-T"; /* * Since util-linux v2.25 fsck uses /run/fsck/<diskname>.lock files. * The previous versions use flock for the device and conflict with * udevd, see https://bugs.freedesktop.org/show_bug.cgi?id=79576#c5 */ cmdline[i++] = "-l"; if (!root_directory) cmdline[i++] = "-M"; if (arg_force) cmdline[i++] = "-f"; if (progress_pipe[1] >= 0) { snprintf(dash_c, sizeof(dash_c), "-C%i", progress_pipe[1]); char_array_0(dash_c); cmdline[i++] = dash_c; } cmdline[i++] = device; cmdline[i++] = NULL; pid = fork(); if (pid < 0) { log_error_errno(errno, "fork(): %m"); goto finish; } else if (pid == 0) { /* Child */ if (progress_pipe[0] >= 0) safe_close(progress_pipe[0]); execv(cmdline[0], (char**) cmdline); _exit(8); /* Operational error */ } progress_pipe[1] = safe_close(progress_pipe[1]); if (progress_pipe[0] >= 0) { process_progress(progress_pipe[0]); progress_pipe[0] = -1; } q = wait_for_terminate(pid, &status); if (q < 0) { log_error_errno(q, "waitid(): %m"); goto finish; } if (status.si_code != CLD_EXITED || (status.si_status & ~1)) { if (status.si_code == CLD_KILLED || status.si_code == CLD_DUMPED) log_error("fsck terminated by signal %s.", signal_to_string(status.si_status)); else if (status.si_code == CLD_EXITED) log_error("fsck failed with error code %i.", status.si_status); else log_error("fsck failed due to unknown reason."); if (status.si_code == CLD_EXITED && (status.si_status & 2) && root_directory) /* System should be rebooted. */ start_target(SPECIAL_REBOOT_TARGET); else if (status.si_code == CLD_EXITED && (status.si_status & 6)) /* Some other problem */ start_target(SPECIAL_EMERGENCY_TARGET); else { r = EXIT_SUCCESS; log_warning("Ignoring error."); } } else r = EXIT_SUCCESS; if (status.si_code == CLD_EXITED && (status.si_status & 1)) touch("/run/systemd/quotacheck"); finish: safe_close_pair(progress_pipe); return r; }
int Test::all() { clock_t begin = clock(); exeTime = 0; test_general(); test_types(); test_booleans(); test_numbers(); test_strings(); test_arrays(); test_intervals(); test_map(); test_set(); test_objects(); test_functions(); test_classes(); test_loops(); test_operators(); test_references(); test_exceptions(); test_operations(); test_system(); test_json(); test_files(); test_doc(); test_utils(); double elapsed_secs = double(clock() - begin) / CLOCKS_PER_SEC; int errors = (total - success_count); int leaks = (obj_created - obj_deleted); int mpz_leaks = (mpz_obj_created - mpz_obj_deleted); std::ostringstream line1, line2, line3, line4; line1 << "Total : " << total << ", success : " << success_count << ", errors : " << errors; line2 << "Total time : " << elapsed_secs * 1000 << " ms"; line3 << "Objects destroyed : " << obj_deleted << " / " << obj_created << " (" << leaks << " leaked)"; line4 << "MPZ objects destroyed : " << mpz_obj_deleted << " / " << mpz_obj_created << " (" << mpz_leaks << " leaked)"; unsigned w = std::max(line1.str().size(), std::max(line2.str().size(), std::max(line3.str().size(), line4.str().size()))); auto pad = [](std::string s, int l) { l -= s.size(); while (l-- > 0) s += " "; return s; }; std::cout << "┌"; for (unsigned i = 0; i < w + 2; ++i) std::cout << "─"; std::cout << "┐" << std::endl; std::cout << "│ " << pad(line1.str(), w) << " │" << std::endl; std::cout << "│ " << pad(line2.str(), w) << " │" << std::endl; std::cout << "│ " << pad(line3.str(), w) << " │" << std::endl; std::cout << "│ " << pad(line4.str(), w) << " │" << std::endl; std::cout << "├"; for (unsigned i = 0; i < w + 2; ++i) std::cout << "─"; std::cout << "┤"; std::cout << std::endl; int result = abs(errors) + abs(leaks) + abs(mpz_leaks); if (result == 0) { std::cout << "│ " << pad("GOOD! ✔", w + 2) << " │" << std::endl; } else { std::cout << "│ " << pad("BAD! : " + std::to_string(result) + " error(s) ✘", w + 2) << " │" << std::endl; } std::cout << "└"; for (unsigned i = 0; i < w + 2; ++i) std::cout << "─"; std::cout << "┘" << std::endl; for (const auto& error : failed_tests) { std::cout << " " << error << std::endl; } if (failed_tests.size()) { std::cout << std::endl; } return result; }
int main(int argc, char *argv[]) { const char *cmdline[9]; int i = 0, r = EXIT_FAILURE, q; pid_t pid; siginfo_t status; struct udev *udev = NULL; struct udev_device *udev_device = NULL; const char *device; bool root_directory; int progress_pipe[2] = { -1, -1 }; char dash_c[2+10+1]; if (argc > 2) { log_error("This program expects one or no arguments."); return EXIT_FAILURE; } log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); umask(0022); parse_proc_cmdline(); test_files(); if (!arg_force && arg_skip) return 0; if (argc > 1) { device = argv[1]; root_directory = false; } else { struct stat st; struct timespec times[2]; /* Find root device */ if (stat("/", &st) < 0) { log_error("Failed to stat() the root directory: %m"); goto finish; } /* Virtual root devices don't need an fsck */ if (major(st.st_dev) == 0) return 0; /* check if we are already writable */ times[0] = st.st_atim; times[1] = st.st_mtim; if (utimensat(AT_FDCWD, "/", times, 0) == 0) { log_info("Root directory is writable, skipping check."); return 0; } if (!(udev = udev_new())) { log_oom(); goto finish; } if (!(udev_device = udev_device_new_from_devnum(udev, 'b', st.st_dev))) { log_error("Failed to detect root device."); goto finish; } if (!(device = udev_device_get_devnode(udev_device))) { log_error("Failed to detect device node of root directory."); goto finish; } root_directory = true; } if (arg_show_progress) if (pipe(progress_pipe) < 0) { log_error("pipe(): %m"); goto finish; } cmdline[i++] = "/sbin/fsck"; cmdline[i++] = "-a"; cmdline[i++] = "-T"; cmdline[i++] = "-l"; if (!root_directory) cmdline[i++] = "-M"; if (arg_force) cmdline[i++] = "-f"; if (progress_pipe[1] >= 0) { snprintf(dash_c, sizeof(dash_c), "-C%i", progress_pipe[1]); char_array_0(dash_c); cmdline[i++] = dash_c; } cmdline[i++] = device; cmdline[i++] = NULL; pid = fork(); if (pid < 0) { log_error("fork(): %m"); goto finish; } else if (pid == 0) { /* Child */ if (progress_pipe[0] >= 0) close_nointr_nofail(progress_pipe[0]); execv(cmdline[0], (char**) cmdline); _exit(8); /* Operational error */ } if (progress_pipe[1] >= 0) { close_nointr_nofail(progress_pipe[1]); progress_pipe[1] = -1; } if (progress_pipe[0] >= 0) { process_progress(progress_pipe[0]); progress_pipe[0] = -1; } q = wait_for_terminate(pid, &status); if (q < 0) { log_error("waitid(): %s", strerror(-q)); goto finish; } if (status.si_code != CLD_EXITED || (status.si_status & ~1)) { if (status.si_code == CLD_KILLED || status.si_code == CLD_DUMPED) log_error("fsck terminated by signal %s.", signal_to_string(status.si_status)); else if (status.si_code == CLD_EXITED) log_error("fsck failed with error code %i.", status.si_status); else log_error("fsck failed due to unknown reason."); if (status.si_code == CLD_EXITED && (status.si_status & 2) && root_directory) /* System should be rebooted. */ start_target(SPECIAL_REBOOT_TARGET, false); else if (status.si_code == CLD_EXITED && (status.si_status & 6)) /* Some other problem */ start_target(SPECIAL_EMERGENCY_TARGET, true); else { r = EXIT_SUCCESS; log_warning("Ignoring error."); } } else r = EXIT_SUCCESS; if (status.si_code == CLD_EXITED && (status.si_status & 1)) touch("/run/systemd/quotacheck"); finish: if (udev_device) udev_device_unref(udev_device); if (udev) udev_unref(udev); close_pipe(progress_pipe); return r; }
int run_ansi_tests(int test_num) { return test_files(test_num, "ANSI"); }