int get_next_line(int const fd, char **line) { static t_list_fd *list = NULL; char *buf; int len; char *chr; if (fd < 0 || !line || !(list = ft_search_fd(list, fd)) || BUFF_SIZE <= 0) return (-1); if (!(buf = malloc(sizeof(char) * (BUFF_SIZE + 1)))) return (-1); ft_bzero(buf, BUFF_SIZE + 1); if (check_buf(list, line, buf)) return (1); *line = ft_strdup(list->content); while ((len = read(fd, buf, BUFF_SIZE))) { if (len == -1) return (-1); buf[len] = '\0'; if (check_buf(list, line, buf)) return (1); chr = *line; *line = ft_strjoin(*line, buf); free(chr); } return (0); }
boolean handle_subfont_fm(fm_entry * fm, int mode) { size_t l; char *p, *q, *r; sfd_entry *sfd; subfont_entry *sf; fm_entry *fm2; char buf[SMALL_BUF_SIZE]; assert(fm->tfm_name != NULL); p = fm->tfm_name; q = strchr(p, '@'); /* search for the first '@' */ if (q == NULL) return false; r = strchr(q + 1, '@'); /* search for the second '@' */ if (r == NULL) return false; if (q <= p || r <= q + 1 /* prefix or sfd name is empty */ || r - p != strlen(p) - 1) /* or the second '@' is not the last char yet */ return false; l = r - (q + 1); /* length of sfd name */ strncpy(buf, q + 1, l); buf[l] = 0; check_buf(strlen(buf) + 4, SMALL_BUF_SIZE); strcat(buf, ".sfd"); sfd = read_sfd(buf); if (sfd == NULL) return false; /* at this point we know fm is a subfont */ set_subfont(fm); xfree(fm->ps_name); fm->ps_name = NULL; /* set default values for PidEid */ if (fm->pid == -1) { fm->pid = 3; fm->eid = 1; } l = q - p; /* length of base tfm name (prefix) */ for (sf = sfd->subfont; sf != NULL; sf = sf->next) { strncpy(buf, p, l); buf[l] = 0; strcat(buf, sf->infix); fm2 = new_fm_entry(); fm2->tfm_name = xstrdup(buf); fm2->ff_name = xstrdup(fm->ff_name); fm2->type = fm->type; fm2->pid = fm->pid; fm2->eid = fm->eid; fm2->subfont = sf; if (avl_do_entry(fm2, mode) != 0) /* try to insert the entry */ delete_fm_entry(fm2); /* delete it if failed */ } delete_fm_entry(fm); return true; }
str file::readline() { assert(opened()); check_buf(); string ret; if (fgets(buf, 64*1024+1, fp)) ret=buf; uint l=ret.size(); if (l>=2 AND ret[l-2]=='\r' AND ret[l-1]=='\n') return str(ret.begin(), ret.end()-2); if (l>=1 AND ret[l-1]=='\n') return str(ret.begin(), ret.end()-1); return ret; }
/** * Main function for this unit test * * * @return 0 if test passed */ int main() { t_buffer *buffer; t_buffer buffer2; buffer = buffer_create(NULL); XTEST(buffer != NULL); XTEST(buffer_add(buffer, "123456789", 9) == 9); check_buf(buffer, 123456789); buffer_erase(buffer, buffer_size(buffer)); XTEST(buffer_add(buffer, "1", 1) == 1); check_buf(buffer, 1); buffer_erase(buffer, buffer_size(buffer)); XTEST(buffer_add(buffer, "-12345678", 9) == 9); check_buf(buffer, -12345678); buffer_erase(buffer, buffer_size(buffer)); buffer_destroy(buffer); strtobuffer(&buffer2, "987654321"); check_buf(&buffer2, 987654321); strtobuffer(&buffer2, "0"); check_buf(&buffer2, 0); strtobuffer(&buffer2, "-987654321"); check_buf(&buffer2, -987654321); XPASS(); }
void move_list(t_win *win, t_ios *term, int x, int y) { char *buf; int select; t_wsize ws; int resize; if (tcsetattr(0, TCSADRAIN, term) == -1) leave_term(); buf = ft_memalloc(5); win->stop = 0; read(0, buf, 3); resize = reset_val(term, &ws, 0); if (resize != 0) { y = win->position / win->max_y; x = win->position % win->max_y; check_move(buf, &y, &x, win); select = check_buf(buf, win, win->position, term); get_position(win, select, &x, &y); print_arg(&(win->arg), win, win->position, find_space(win->arg)); } free(buf); }
void do_sep_send_recv_iter(int idx, int len) { ssize_t sz; int i = 0; uint64_t cntr; ssize_t ret, src_done, dest_done; struct fi_cq_tagged_entry s_cqe = {(void *) -1, UINT_MAX, UINT_MAX, (void *) -1, UINT_MAX, UINT_MAX}; struct fi_cq_tagged_entry d_cqe = {(void *) -1, UINT_MAX, UINT_MAX, (void *) -1, UINT_MAX, UINT_MAX}; struct fi_cq_tagged_entry s_expected_cqe, d_expected_cqe; init_bufs((void **) source, NUMEPS, len); init_bufs((void **) target, NUMEPS, len); for (i = 0; i < NUMEPS; i++) { dbg_printf(BLUE "From ep(%d) to ep(%d) of xfer size %d\n" COLOR_RESET, i, NUMEPS - 1 - i, len); s_expected_cqe.buf = NULL; s_expected_cqe.data = 0; s_expected_cqe.flags = (FI_MSG | FI_TRANSMIT/*FI_SEND*/); s_expected_cqe.len = 0; s_expected_cqe.op_context = target[NUMEPS - 1 - i]; s_expected_cqe.tag = 0; sz = fi_send(tx_ep[i][idx], source[i], len, NULL, gni_addr[NUMEPS - 1 - i], target[NUMEPS - 1 - i]); cr_assert(sz == FI_SUCCESS, "Invalid return value: %s", fi_strerror((int) -sz)); d_expected_cqe.buf = NULL; d_expected_cqe.data = 0; d_expected_cqe.flags = (FI_MSG | FI_RECV); d_expected_cqe.len = len; d_expected_cqe.op_context = source[i]; d_expected_cqe.tag = 0; sz = fi_recv(rx_ep[NUMEPS - 1 - i][idx], target[NUMEPS - 1 - i], len, NULL, gni_addr[i], source[i]); cr_assert(sz == FI_SUCCESS, "Invalid return value: %s", fi_strerror((int) -sz)); src_done = dest_done = 0; /* Progress sender and receiver */ do { ret = fi_cq_read(tx_cq[i][idx], &s_cqe, 1); if (ret == 1) src_done = 1; ret = fi_cq_read(rx_cq[NUMEPS - 1 - i][idx], &d_cqe, 1); if (ret == 1) dest_done = 1; } while (src_done != 1 || dest_done != 1); cntr = fi_cntr_read(send_cntr[i]); cr_assert(cntr == ++sends[i], "Invalid send counter: actual(%lu), expected(%lu)", cntr, sends[i]); cntr = fi_cntr_read(recv_cntr[NUMEPS - 1 - i]); cr_assert(cntr == ++recvs[NUMEPS - 1 - i], "Invalid recv counter: actual(%lu), expected(%lu)", cntr, recvs[NUMEPS - 1 - i]); check_tagged_cqe(s_expected_cqe, s_cqe); check_tagged_cqe(d_expected_cqe, d_cqe); check_buf(source[i], target[NUMEPS - 1 - i], len); } }
int main(int argc, char *argv[]) { bool check = false; int csize = -1; bool client = false; int dsize = MAX_BUF; int ferr; int inx; int len; int lerr; int loop = 10; int min_csize; int min_dsize; int max_csize = -1; int max_dsize = -1; int msgid; int oid; TPT_DECL (phandle); uint result; RT results; BMS_SRE sre; bool verbose = false; TAD zargs[] = { { "-check", TA_Bool, TA_NOMAX, &check }, { "-client", TA_Bool, TA_NOMAX, &client }, { "-csize", TA_Int, MAX_BUF, &csize }, { "-dsize", TA_Int, MAX_BUF, &dsize }, { "-loop", TA_Int, TA_NOMAX, &loop }, { "-maxcsize", TA_Int, MAX_BUF, &max_csize }, { "-maxdsize", TA_Int, MAX_BUF, &max_dsize }, { "-server", TA_Ign, TA_NOMAX, NULL }, { "-v", TA_Bool, TA_NOMAX, &verbose }, { "", TA_End, TA_NOMAX, NULL } }; msfs_util_init(&argc, &argv, msg_debug_hook); arg_proc_args(zargs, false, argc, argv); util_test_start(client); ferr = msg_mon_process_startup(!client); // system messages? TEST_CHK_FEOK(ferr); if (client) { ferr = msg_mon_open_process((char *) "$srv", // name TPT_REF(phandle), &oid); TEST_CHK_FEOK(ferr); } util_gethostname(my_name, sizeof(my_name)); msg_mon_enable_mon_messages(true); if (check) { if (csize < 0) csize = 0; if (dsize == MAX_BUF) dsize = 0; min_csize = csize; min_dsize = dsize; min_csize = min_csize; // touch min_dsize = min_dsize; // touch if (client) { for (inx = 0; inx < MAX_BUF; inx++) { send_buffer[inx] = (char) inx; // cast send_buffer2[inx] = (short) inx; // cast } } } else min_csize = 0; for (inx = 0; inx < loop; inx++) { if (verbose) printf("client=%d, csize=%d, dsize=%d\n", client, csize, dsize); else if (check && (csize == min_csize)) printf("client=%d, csize=%d, dsize=%d\n", client, csize, dsize); if (client) { if (check) { send_buffer[0] = (char) dsize; // cast send_buffer2[0] = (short) csize; // cast len = 0; } else { sprintf(send_buffer, "hello, greetings from %s, inx=%d", my_name, inx); len = (int) strlen(send_buffer) + 1; // cast } ferr = BMSG_LINK_(TPT_REF(phandle), // phandle &msgid, // msgid send_buffer2, // reqctrl csize < 0 ? // reqctrlsize (inx & 1) : csize, recv_buffer3, // replyctrl csize < 0 ? 1 : csize, // replyctrlmax send_buffer, // reqdata check ? dsize : len, // reqdatasize recv_buffer, // replydata MAX_BUF, // replydatamax 0, // linkertag 0, // pri 0, // xmitclass 0); // linkopts util_check("BMSG_LINK_", ferr); ferr = BMSG_BREAK_(msgid, results.u.s, TPT_REF(phandle)); util_check("BMSG_BREAK_", ferr); if (check) assert(results.u.t.ctrl_size == (uint) csize); else assert(results.u.t.ctrl_size == (uint) (csize < 0 ? (inx & 1) : csize)); if (check) assert(results.u.t.data_size == (uint) dsize); else assert(results.u.t.data_size > (strlen(send_buffer) + 14)); if (check) { if (dsize) result = RT_DATA_RCVD; // data else result = 0x0; // no-data assert(results.u.t.errm == result); check_buf(send_buffer2, recv_buffer3, csize); check_buf(send_buffer, recv_buffer, dsize); } else { assert(results.u.t.errm == RT_DATA_RCVD); // data printf("%s\n", recv_buffer); } } else { do { lerr = XWAIT(LREQ, -1); TEST_CHK_WAITIGNORE(lerr); lerr = BMSG_LISTEN_((short *) &sre, // sre 0, // listenopts 0); // listenertag } while (lerr == XSRETYPE_NOWORK); ferr = BMSG_READCTRL_(sre.sre_msgId, // msgid recv_buffer2, // reqctrl sre.sre_reqCtrlSize); // bytecount util_check("BMSG_READCTRL_", ferr); ferr = BMSG_READDATA_(sre.sre_msgId, // msgid recv_buffer, // reqdata sre.sre_reqDataSize); // bytecount util_check("BMSG_READDATA_", ferr); if (sre.sre_flags & XSRE_MON) { printf("server received mon message\n"); inx--; len = 0; } else { if (!check) { strcat(recv_buffer, "- reply from "); strcat(recv_buffer, my_name); len = (int) strlen(recv_buffer) + 1; // cast } else len = 0; } BMSG_REPLY_(sre.sre_msgId, // msgid recv_buffer2, // replyctrl sre.sre_reqCtrlSize, // replyctrlsize recv_buffer, // replydata check ? sre.sre_reqDataSize : len, // replydatasize 0, // errorclass NULL); // newphandle if (sre.sre_flags & XSRE_MON) continue; } if (check) { if (max_csize >= 0) { csize++; if (csize >= max_csize) csize = min_csize; } if ((max_dsize >= 0) && (csize == min_csize)) dsize++; if (dsize >= max_dsize) { printf("break client=%d, csize=%d, dsize=%d\n", client, csize, dsize); break; } if ((max_csize >= 0) || (max_dsize >= 0)) { inx--; continue; } } } if (client) { ferr = msg_mon_close_process(TPT_REF(phandle)); TEST_CHK_FEOK(ferr); } else { ferr = msg_mon_process_close(); TEST_CHK_FEOK(ferr); } ferr = msg_mon_process_shutdown(); TEST_CHK_FEOK(ferr); util_test_finish(client); return 0; }
void main() { int fd; unsigned char attr[1024]; unsigned char* buf; unsigned int buf_size; unsigned long phys_addr; unsigned long debug_vma = 0; unsigned long sync_mode = 2; int error_count; struct timeval start_time, end_time; if ((fd = open("/sys/class/udmabuf/udmabuf0/phys_addr", O_RDONLY)) != -1) { read(fd, attr, 1024); sscanf(attr, "%x", &phys_addr); close(fd); } if ((fd = open("/sys/class/udmabuf/udmabuf0/size" , O_RDONLY)) != -1) { read(fd, attr, 1024); sscanf(attr, "%d", &buf_size); close(fd); } if ((fd = open("/sys/class/udmabuf/udmabuf0/sync_mode", O_WRONLY)) != -1) { sprintf(attr, "%d", sync_mode); write(fd, attr, strlen(attr)); close(fd); } if ((fd = open("/sys/class/udmabuf/udmabuf0/debug_vma", O_WRONLY)) != -1) { sprintf(attr, "%d", debug_vma); write(fd, attr, strlen(attr)); close(fd); } printf("phys_addr=0x%x\n", phys_addr); printf("size=%d\n", buf_size); if ((fd = open("/dev/udmabuf0", O_RDWR)) != -1) { buf = mmap(NULL, buf_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); gettimeofday(&start_time, NULL); error_count = check_buf(buf, buf_size); gettimeofday(&end_time , NULL); print_diff_time(start_time, end_time); close(fd); } sync_mode = 0; if ((fd = open("/sys/class/udmabuf/udmabuf0/sync_mode", O_WRONLY)) != -1) { sprintf(attr, "%d", sync_mode); write(fd, attr, strlen(attr)); close(fd); } printf("sync_mode=%d\n", sync_mode); if ((fd = open("/dev/udmabuf0", O_RDWR | O_SYNC)) != -1) { buf = mmap(NULL, buf_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); gettimeofday(&start_time, NULL); error_count = check_buf(buf, buf_size); gettimeofday(&end_time , NULL); print_diff_time(start_time, end_time); close(fd); } sync_mode = 1; if ((fd = open("/sys/class/udmabuf/udmabuf0/sync_mode", O_WRONLY)) != -1) { sprintf(attr, "%d", sync_mode); write(fd, attr, strlen(attr)); close(fd); } printf("sync_mode=%d\n", sync_mode); if ((fd = open("/dev/udmabuf0", O_RDWR | O_SYNC)) != -1) { buf = mmap(NULL, buf_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); gettimeofday(&start_time, NULL); error_count = check_buf(buf, buf_size); gettimeofday(&end_time , NULL); print_diff_time(start_time, end_time); close(fd); } sync_mode = 2; if ((fd = open("/sys/class/udmabuf/udmabuf0/sync_mode", O_WRONLY)) != -1) { sprintf(attr, "%d", sync_mode); write(fd, attr, strlen(attr)); close(fd); } printf("sync_mode=%d\n", sync_mode); if ((fd = open("/dev/udmabuf0", O_RDWR | O_SYNC)) != -1) { buf = mmap(NULL, buf_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); gettimeofday(&start_time, NULL); error_count = check_buf(buf, buf_size); gettimeofday(&end_time , NULL); print_diff_time(start_time, end_time); close(fd); } sync_mode = 3; if ((fd = open("/sys/class/udmabuf/udmabuf0/sync_mode", O_WRONLY)) != -1) { sprintf(attr, "%d", sync_mode); write(fd, attr, strlen(attr)); close(fd); } printf("sync_mode=%d\n", sync_mode); if ((fd = open("/dev/udmabuf0", O_RDWR | O_SYNC)) != -1) { buf = mmap(NULL, buf_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); gettimeofday(&start_time, NULL); error_count = check_buf(buf, buf_size); gettimeofday(&end_time , NULL); print_diff_time(start_time, end_time); close(fd); } }
void test_core_buffer__lf_and_crlf_conversions(void) { git_buf src = GIT_BUF_INIT, tgt = GIT_BUF_INIT; /* LF source */ git_buf_sets(&src, "lf\nlf\nlf\nlf\n"); cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src)); check_buf("lf\r\nlf\r\nlf\r\nlf\r\n", tgt); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf(src.ptr, tgt); git_buf_sets(&src, "\nlf\nlf\nlf\nlf\nlf"); cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src)); check_buf("\r\nlf\r\nlf\r\nlf\r\nlf\r\nlf", tgt); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf(src.ptr, tgt); /* CRLF source */ git_buf_sets(&src, "crlf\r\ncrlf\r\ncrlf\r\ncrlf\r\n"); cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src)); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf("crlf\ncrlf\ncrlf\ncrlf\n", tgt); git_buf_sets(&src, "\r\ncrlf\r\ncrlf\r\ncrlf\r\ncrlf\r\ncrlf"); cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src)); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf("\ncrlf\ncrlf\ncrlf\ncrlf\ncrlf", tgt); /* CRLF in LF text */ git_buf_sets(&src, "\nlf\nlf\ncrlf\r\nlf\nlf\ncrlf\r\n"); cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src)); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf("\nlf\nlf\ncrlf\nlf\nlf\ncrlf\n", tgt); /* LF in CRLF text */ git_buf_sets(&src, "\ncrlf\r\ncrlf\r\nlf\ncrlf\r\ncrlf"); cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src)); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf("\ncrlf\ncrlf\nlf\ncrlf\ncrlf", tgt); /* bare CR test */ git_buf_sets(&src, "\rcrlf\r\nlf\nlf\ncr\rcrlf\r\nlf\ncr\r"); cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src)); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf("\rcrlf\nlf\nlf\ncr\rcrlf\nlf\ncr\r", tgt); git_buf_sets(&src, "\rcr\r"); cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src)); check_buf(src.ptr, tgt); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf("\rcr\r", tgt); git_buf_free(&src); git_buf_free(&tgt); /* blob correspondence tests */ git_buf_sets(&src, ALL_CRLF_TEXT_RAW); cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src)); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf(ALL_CRLF_TEXT_AS_LF, tgt); git_buf_free(&src); git_buf_free(&tgt); git_buf_sets(&src, ALL_LF_TEXT_RAW); cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src)); check_buf(ALL_LF_TEXT_AS_CRLF, tgt); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf(ALL_LF_TEXT_AS_LF, tgt); git_buf_free(&src); git_buf_free(&tgt); git_buf_sets(&src, MORE_CRLF_TEXT_RAW); cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src)); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf(MORE_CRLF_TEXT_AS_LF, tgt); git_buf_free(&src); git_buf_free(&tgt); git_buf_sets(&src, MORE_LF_TEXT_RAW); cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src)); cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src)); check_buf(MORE_LF_TEXT_AS_LF, tgt); git_buf_free(&src); git_buf_free(&tgt); }