diff --git a/gtests/net/packetdrill/parser.y b/gtests/net/packetdrill/parser.y index 560688899bf237c4784d5103ef96a642275e75d0..4a038abdd992e87b609112852384f34086c47ad4 100644 --- a/gtests/net/packetdrill/parser.y +++ b/gtests/net/packetdrill/parser.y @@ -566,10 +566,10 @@ static struct tcp_option *new_tcp_fast_open_option(const char *cookie_string, %type <expression_list> expression_list function_arguments %type <expression> expression binary_expression array %type <expression> decimal_integer hex_integer -%type <expression> inaddr sockaddr msghdr iovec pollfd opt_revents +%type <expression> inaddr sockaddr msghdr iovec pollfd opt_revents %type <expression> linger l_onoff l_linger -%type <expression> sctp_status sstat_state sstat_rwnd sstat_unackdata sstat_penddata -%type <expression> sstat_instrms sstat_outstrms sstat_fragmentation_point sstat_primary +%type <expression> sctp_status sstat_state sstat_rwnd sstat_unackdata sstat_penddata +%type <expression> sstat_instrms sstat_outstrms sstat_fragmentation_point sstat_primary %type <expression> sctp_initmsg sctp_assocval sctp_sackinfo %type <expression> sctp_rtoinfo srto_initial srto_max srto_min sctp_paddrinfo %type <expression> sctp_paddrparams spp_address spp_hbinterval spp_pathmtu spp_pathmaxrxt @@ -2294,18 +2294,17 @@ opt_revents ; l_onoff -: ONOFF '=' INTEGER { +: ONOFF '=' INTEGER { if (!is_valid_s32($3)) { semantic_error("linger onoff out of range"); - } else { - $$ = new_integer_expression($3, "%ld"); - } + } + $$ = new_integer_expression($3, "%ld"); } | ONOFF '=' ELLIPSIS { $$ = new_expression(EXPR_ELLIPSIS); } ; l_linger -: LINGER '=' INTEGER { +: LINGER '=' INTEGER { if (!is_valid_s32($3)) { semantic_error("linger out of range"); } @@ -2563,7 +2562,7 @@ sctp_paddrinfo ; sctp_status -: '{' sstat_state ',' sstat_rwnd ',' sstat_unackdata ',' sstat_penddata ',' sstat_instrms ',' sstat_outstrms ',' +: '{' sstat_state ',' sstat_rwnd ',' sstat_unackdata ',' sstat_penddata ',' sstat_instrms ',' sstat_outstrms ',' sstat_fragmentation_point ',' sstat_primary '}' { $$ = new_expression(EXPR_SCTP_STATUS); $$->value.sctp_status = (struct sctp_status_expr*) calloc(1, sizeof(struct sctp_status_expr)); diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c index d2dcb61da6000fd274debee3ca28eac37cf2dcd1..c28899ffe28d90b32b4d0e200b4461ebde94c67c 100644 --- a/gtests/net/packetdrill/run_system_call.c +++ b/gtests/net/packetdrill/run_system_call.c @@ -205,7 +205,7 @@ static int get_s32(struct expression *expression, * success; on failure returns STATUS_ERR and sets error message. */ static short get_s16(struct expression *expression, - s16 *value, char **error) + s16 *value, char **error) { if (check_type(expression, EXPR_INTEGER, error)) return STATUS_ERR; @@ -1658,27 +1658,27 @@ static int syscall_getsockopt(struct state *state, struct syscall_spec *syscall, struct expression *l_linger = val_expression->value.linger->l_linger; struct linger *ling = live_optval; int val_onoff = 0; - if (l_onoff->type == EXPR_INTEGER) { + if (l_onoff->type != EXPR_ELLIPSIS) { if (get_s32(l_onoff, &val_onoff, error)) { free(live_optval); return STATUS_ERR; } if (val_onoff != ling->l_onoff) { asprintf(error, "Bad getsockopt Linger onoff: expected: %d actual: %d", - (int) val_onoff, ling->l_onoff); + val_onoff, ling->l_onoff); free(live_optval); return STATUS_ERR; } } int val_linger = 0; - if (l_linger->type == EXPR_INTEGER) { + if (l_linger->type != EXPR_ELLIPSIS) { if (get_s32(l_linger, &val_linger, error)) { free(live_optval); return STATUS_ERR; } if (ling->l_linger != val_linger) { asprintf(error, "Bad getsockopt Linger Value: expected: %d actual: %d", - val_linger, ling->l_linger); + val_linger, ling->l_linger); free(live_optval); return STATUS_ERR; } @@ -1758,7 +1758,7 @@ static int syscall_getsockopt(struct state *state, struct syscall_spec *syscall, } if (live_status->sstat_rwnd != rwnd) { asprintf(error, "Bad getsockopt SCTP_STATUS rwnd: expected: %u actual: %u ", - rwnd, live_status->sstat_rwnd); + rwnd, live_status->sstat_rwnd); free(live_optval); return STATUS_ERR; } @@ -1770,7 +1770,7 @@ static int syscall_getsockopt(struct state *state, struct syscall_spec *syscall, } if (live_status->sstat_unackdata != unackdata) { asprintf(error, "Bad getsockopt SCTP_STATUS unackdata: expected: %hu actual: %hu", - unackdata, live_status->sstat_unackdata); + unackdata, live_status->sstat_unackdata); free(live_optval); return STATUS_ERR; }