mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 19:54:21 +01:00
Print runner number in Hydra
This commit is contained in:
parent
c9a2c86d78
commit
20aea1f32f
@ -12,7 +12,7 @@ all: mgba-rom-test-hydra$(EXE)
|
|||||||
@:
|
@:
|
||||||
|
|
||||||
mgba-rom-test-hydra$(EXE): $(SRCS)
|
mgba-rom-test-hydra$(EXE): $(SRCS)
|
||||||
$(CC) $(SRCS) -o $@ $(LDFLAGS)
|
$(CC) $(SRCS) -o $@ -lm $(LDFLAGS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) mgba-rom-test-hydra$(EXE)
|
$(RM) mgba-rom-test-hydra$(EXE)
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
* passes/known fails/assumption fails/fails.
|
* passes/known fails/assumption fails/fails.
|
||||||
*/
|
*/
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <math.h>
|
||||||
#include <poll.h>
|
#include <poll.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
@ -53,9 +54,10 @@ struct Runner
|
|||||||
};
|
};
|
||||||
|
|
||||||
static unsigned nrunners = 0;
|
static unsigned nrunners = 0;
|
||||||
|
static unsigned runners_digits = 0;
|
||||||
static struct Runner *runners = NULL;
|
static struct Runner *runners = NULL;
|
||||||
|
|
||||||
static void handle_read(struct Runner *runner)
|
static void handle_read(int i, struct Runner *runner)
|
||||||
{
|
{
|
||||||
char *sol = runner->input_buffer;
|
char *sol = runner->input_buffer;
|
||||||
char *eol;
|
char *eol;
|
||||||
@ -101,7 +103,7 @@ static void handle_read(struct Runner *runner)
|
|||||||
add_to_results:
|
add_to_results:
|
||||||
runner->results++;
|
runner->results++;
|
||||||
soc += 2;
|
soc += 2;
|
||||||
fprintf(stdout, "%s: ", runner->test_name);
|
fprintf(stdout, "[%0*d] %s: ", runners_digits, i, runner->test_name);
|
||||||
fwrite(soc, 1, eol - soc, stdout);
|
fwrite(soc, 1, eol - soc, stdout);
|
||||||
fwrite(runner->output_buffer, 1, runner->output_buffer_size, stdout);
|
fwrite(runner->output_buffer, 1, runner->output_buffer_size, stdout);
|
||||||
strcpy(runner->test_name, "WAITING...");
|
strcpy(runner->test_name, "WAITING...");
|
||||||
@ -230,6 +232,7 @@ int main(int argc, char *argv[])
|
|||||||
nrunners = sysconf(_SC_NPROCESSORS_ONLN);
|
nrunners = sysconf(_SC_NPROCESSORS_ONLN);
|
||||||
if (nrunners > MAX_PROCESSES)
|
if (nrunners > MAX_PROCESSES)
|
||||||
nrunners = MAX_PROCESSES;
|
nrunners = MAX_PROCESSES;
|
||||||
|
runners_digits = ceil(log10(nrunners));
|
||||||
runners = calloc(nrunners, sizeof(*runners));
|
runners = calloc(nrunners, sizeof(*runners));
|
||||||
if (!runners)
|
if (!runners)
|
||||||
{
|
{
|
||||||
@ -244,7 +247,7 @@ int main(int argc, char *argv[])
|
|||||||
runners[i].output_buffer = malloc(runners[i].output_buffer_capacity);
|
runners[i].output_buffer = malloc(runners[i].output_buffer_capacity);
|
||||||
strcpy(runners[i].test_name, "WAITING...");
|
strcpy(runners[i].test_name, "WAITING...");
|
||||||
if (tty)
|
if (tty)
|
||||||
fprintf(stdout, "%s\n", runners[i].test_name);
|
fprintf(stdout, "[%0*d] %s\n", runners_digits, i, runners[i].test_name);
|
||||||
}
|
}
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
atexit(unlink_roms);
|
atexit(unlink_roms);
|
||||||
@ -412,7 +415,7 @@ int main(int argc, char *argv[])
|
|||||||
for (int i = 0; i < nrunners; i++)
|
for (int i = 0; i < nrunners; i++)
|
||||||
{
|
{
|
||||||
if (runners[i].outfd >= 0)
|
if (runners[i].outfd >= 0)
|
||||||
scrollback += (strlen(runners[i].test_name) + winsize.ws_col - 1) / winsize.ws_col;
|
scrollback += (3 + runners_digits + strlen(runners[i].test_name) + winsize.ws_col - 1) / winsize.ws_col;
|
||||||
}
|
}
|
||||||
if (scrollback > 0)
|
if (scrollback > 0)
|
||||||
fprintf(stdout, "\e[%dF\e[J", scrollback);
|
fprintf(stdout, "\e[%dF\e[J", scrollback);
|
||||||
@ -434,7 +437,7 @@ int main(int argc, char *argv[])
|
|||||||
exit(2);
|
exit(2);
|
||||||
}
|
}
|
||||||
runners[i].input_buffer_size += n;
|
runners[i].input_buffer_size += n;
|
||||||
handle_read(&runners[i]);
|
handle_read(i, &runners[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pollfds[i].revents & (POLLERR | POLLHUP))
|
if (pollfds[i].revents & (POLLERR | POLLHUP))
|
||||||
@ -454,7 +457,7 @@ int main(int argc, char *argv[])
|
|||||||
for (int i = 0; i < nrunners; i++)
|
for (int i = 0; i < nrunners; i++)
|
||||||
{
|
{
|
||||||
if (runners[i].outfd >= 0)
|
if (runners[i].outfd >= 0)
|
||||||
fprintf(stdout, "%s\n", runners[i].test_name);
|
fprintf(stdout, "[%0*d] %s\n", runners_digits, i, runners[i].test_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
Loading…
Reference in New Issue
Block a user