Extend fuzzpuzz to test more code

Now if the input save file loads correctly, fuzzpuzz asks the back-end
to draw the puzzle.  All the drawing operations are no-ops, but this
tests the drawing code in the back-end.
This commit is contained in:
Ben Harris
2023-02-12 22:57:51 +00:00
parent a2bf0508c7
commit ffe2fa169f
2 changed files with 13 additions and 5 deletions

View File

@ -39,6 +39,8 @@ static void savefile_write(void *wctx, const void *buf, int len)
fwrite(buf, 1, len, fp); fwrite(buf, 1, len, fp);
} }
static drawing_api drapi = { NULL };
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
const char *err; const char *err;
@ -47,6 +49,7 @@ int main(int argc, char **argv)
const game *ourgame = NULL; const game *ourgame = NULL;
midend *me; midend *me;
FILE *in = NULL; FILE *in = NULL;
int w, h;
if (argc != 1) { if (argc != 1) {
fprintf(stderr, "usage: %s\n", argv[0]); fprintf(stderr, "usage: %s\n", argv[0]);
@ -93,7 +96,7 @@ int main(int argc, char **argv)
continue; continue;
} }
me = midend_new(NULL, ourgame, NULL, NULL); me = midend_new(NULL, ourgame, &drapi, NULL);
rewind(in); rewind(in);
err = midend_deserialise(me, savefile_read, in); err = midend_deserialise(me, savefile_read, in);
@ -103,6 +106,9 @@ int main(int argc, char **argv)
midend_free(me); midend_free(me);
continue; continue;
} }
w = h = INT_MAX;
midend_size(me, &w, &h, false, 1);
midend_redraw(me);
midend_serialise(me, savefile_write, stdout); midend_serialise(me, savefile_write, stdout);
midend_free(me); midend_free(me);
ret = 0; ret = 0;

View File

@ -13,9 +13,10 @@ void get_random_seed(void **randseed, int *randseedsize)
{ char *c = snewn(1, char); *c = 0; *randseed = c; *randseedsize = 1; } { char *c = snewn(1, char); *c = 0; *randseed = c; *randseedsize = 1; }
void deactivate_timer(frontend *fe) {} void deactivate_timer(frontend *fe) {}
void activate_timer(frontend *fe) {} void activate_timer(frontend *fe) {}
struct drawing { char dummy; };
drawing *drawing_new(const drawing_api *api, midend *me, void *handle) drawing *drawing_new(const drawing_api *api, midend *me, void *handle)
{ return NULL; } { return snew(drawing); }
void drawing_free(drawing *dr) {} void drawing_free(drawing *dr) { sfree(dr); }
void draw_text(drawing *dr, int x, int y, int fonttype, int fontsize, void draw_text(drawing *dr, int x, int y, int fonttype, int fontsize,
int align, int colour, const char *text) {} int align, int colour, const char *text) {}
void draw_rect(drawing *dr, int x, int y, int w, int h, int colour) {} void draw_rect(drawing *dr, int x, int y, int w, int h, int colour) {}
@ -33,8 +34,9 @@ void unclip(drawing *dr) {}
void start_draw(drawing *dr) {} void start_draw(drawing *dr) {}
void draw_update(drawing *dr, int x, int y, int w, int h) {} void draw_update(drawing *dr, int x, int y, int w, int h) {}
void end_draw(drawing *dr) {} void end_draw(drawing *dr) {}
blitter *blitter_new(drawing *dr, int w, int h) {return NULL;} struct blitter { char dummy; };
void blitter_free(drawing *dr, blitter *bl) {} blitter *blitter_new(drawing *dr, int w, int h) { return snew(blitter); }
void blitter_free(drawing *dr, blitter *bl) { sfree(bl); }
void blitter_save(drawing *dr, blitter *bl, int x, int y) {} void blitter_save(drawing *dr, blitter *bl, int x, int y) {}
void blitter_load(drawing *dr, blitter *bl, int x, int y) {} void blitter_load(drawing *dr, blitter *bl, int x, int y) {}
int print_mono_colour(drawing *dr, int grey) { return 0; } int print_mono_colour(drawing *dr, int grey) { return 0; }