int main(int argc, char *argv[]) { unsigned int i; bool found[NUM_TESTS]; struct tdb_context *tdb; int flags[] = { TDB_DEFAULT, TDB_NOMMAP, TDB_CONVERT, TDB_NOMMAP|TDB_CONVERT, TDB_VERSION1, TDB_VERSION1|TDB_NOMMAP, TDB_VERSION1|TDB_CONVERT, TDB_VERSION1|TDB_NOMMAP|TDB_CONVERT }; plan_tests(sizeof(flags) / sizeof(flags[0]) * 6 + 1); for (i = 0; i < sizeof(flags) / sizeof(flags[0]); i++) { tdb = tdb_open("run-93-repack.tdb", flags[i], O_RDWR|O_CREAT|O_TRUNC, 0600, &tap_log_attr); ok1(tdb); if (!tdb) break; ok1(store_all(tdb)); ok1(tdb_repack(tdb) == TDB_SUCCESS); memset(found, 0, sizeof(found)); ok1(tdb_check(tdb, NULL, NULL) == TDB_SUCCESS); ok1(tdb_traverse(tdb, mark_entry, found) == NUM_TESTS); ok1(is_all_set(found, NUM_TESTS)); tdb_close(tdb); } ok1(tap_log_messages == 0); return exit_status(); }
void start_process() { PROCESSES_PIDS[0] = getpid(); int forked_process_number; int child_number = 0; pid_t group_leader; forking_info_t *forking_info; struct sigaction sig_handler; sig_handler.sa_handler = &signal_handler; sig_handler.sa_flags = 0; sigset_t sigset; sigemptyset(&sigset); while ((forking_info = get_fork_info(PROCESS_NUMBER, FORKING_SCHEME)) && (child_number < forking_info->children_count)) { forked_process_number = forking_info->children[child_number]; pid_t child = fork(); switch (child) { case 0: child_number = 0; PROCESS_NUMBER = forked_process_number; break; case -1: print_error(MODULE_NAME, strerror(errno), "fork"); exit(1); default: while (!(group_leader = PROCESSES_PIDS[GROUPS_INFO[forked_process_number]])); if (setpgid(child, group_leader) == -1) { print_error(MODULE_NAME, strerror(errno), "setpgid"); exit(1); }; child_number++; } } if (sigaction(SIGUSR1, &sig_handler, 0) == -1) { print_error(MODULE_NAME, strerror(errno), "sigaction"); }; if (sigaction(SIGUSR2, &sig_handler, 0) == -1) { print_error(MODULE_NAME, strerror(errno), "sigaction"); }; if (sigaction(SIGTERM, &sig_handler, 0) == -1) { print_error(MODULE_NAME, strerror(errno), "sigaction"); }; PROCESSES_PIDS[PROCESS_NUMBER] = getpid(); if (PROCESS_NUMBER == 1) { while (!is_all_set(PROCESSES_PIDS)); int signal_to_send = SIGNALS_TO_SEND[PROCESS_NUMBER]; kill(-PROCESSES_PIDS[RECEIVERS_IDS[PROCESS_NUMBER]], signal_to_send); print_info(PROCESS_NUMBER, 0, signal_to_send); } if (PROCESS_NUMBER == 0) { wait(NULL); return; } while (1){ sleep(1); }; }
size_t find() const { assert(!is_all_set()); size_t offset = 0; for (size_t level = 1; ; level <<= 1, offset <<= 1) { if (m_all.test(level | offset)) offset ^= 1; if (level == SIZE) break; } return offset; }
void solve(int clocks[], int index, int count){ if(is_all_set(clocks)){ ans = count; return; } if(index > 9 || count > ans || count > 31){ return; } for(int i=0; i<4; i++){ solve(clocks, index+1, count+i); click_switch(index, clocks); } }