spitwad/test.c

45 lines
1.1 KiB
C

#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include <stdio.h>
#include "spitwad.h"
// Values from manually inspecting DOOM1.WAD with a third-party tool
void assert_doom1_wad(struct WAD *wad) {
assert(wad->type == IWAD);
assert(wad->dir_sz == 1264);
assert(wad->dir_offset == 4175796);
assert(wad->directory[0].offset == 12);
assert(wad->directory[0].length == 10752);
assert(strcmp(wad->directory[0].name, "PLAYPAL") == 0);
}
void basic_test() {
struct WAD *wad = malloc(sizeof(struct WAD));
assert(new_WAD_from_file(wad, "DOOM1.WAD") == 0);
assert_doom1_wad(wad);
destroy_WAD(wad);
wad = NULL;
}
void read_write_test() {
struct WAD *orig = malloc(sizeof(struct WAD));
assert(new_WAD_from_file(orig, "DOOM1.WAD") == 0);
assert(write_to_file(orig, "TEST.WAD") == 0);
struct WAD *new = malloc(sizeof(struct WAD));
assert(new_WAD_from_file(new, "TEST.WAD") == 0);
assert_doom1_wad(new);
destroy_WAD(orig);
orig = NULL;
destroy_WAD(new);
new = NULL;
remove("TEST.WAD");
}
int main() {
basic_test();
read_write_test();
}