- if (rctx->output == e_output_check
- && (rctx->output_got->used != rctx->output_wanted->used
- || strcmp(rctx->output_got->data, rctx->output_wanted->data))) {
+ if (rctx->output_sort) {
+ xbt_dynar_t a = xbt_str_split(rctx->output_got->data, "\n");
+ xbt_dynar_sort(a,cmpstringp);
+ char *sorted_output = xbt_str_join(a, "\n");
+ strcpy(rctx->output_got->data, sorted_output);
+ xbt_free(sorted_output);
+ xbt_dynar_free(&a);
+ /* If an empty line moved in first position, move it back to the end */
+ if (rctx->output_got->data[0]=='\n') {
+ memmove(rctx->output_got->data,rctx->output_got->data+1,rctx->output_got->used-1);
+ rctx->output_got->data[rctx->output_got->used-1] = '\n';
+ }
+ }
+ if ((errcode && errcode != 1) || rctx->interrupted) {
+ /* checking output, and matching */
+ xbt_dynar_t a = xbt_str_split(rctx->output_got->data, "\n");
+ char *out = xbt_str_join(a, "\n||");
+ xbt_dynar_free(&a);
+ INFO2("Output of <%s> so far: \n||%s", rctx->filepos, out);
+ free(out);
+ } else if (rctx->output == e_output_check
+ && (rctx->output_got->used != rctx->output_wanted->used
+ || strcmp(rctx->output_got->data,
+ rctx->output_wanted->data))) {