From 56844e4349c86bf7a3a130f6c2e7e046b14558bd Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Wed, 4 May 2022 23:27:26 -0600 Subject: [PATCH] testqbsp: leak test case extracted from base1.map --- qbsp/test_qbsp.cc | 8 ++++ testmaps/base1leak.map | 88 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 testmaps/base1leak.map diff --git a/qbsp/test_qbsp.cc b/qbsp/test_qbsp.cc index ed4d1755..fa5473de 100644 --- a/qbsp/test_qbsp.cc +++ b/qbsp/test_qbsp.cc @@ -939,6 +939,14 @@ TEST(testmaps_q2, base1) #endif } +TEST(testmaps_q2, base1leak) +{ + const mbsp_t bsp = LoadTestmap("base1leak.map", {"-q2bsp", "-debugchop"}); + + EXPECT_FALSE(map.leakfile); + EXPECT_EQ(GAME_QUAKE_II, bsp.loadversion->game->id); +} + TEST(benchmark, winding) { ankerl::nanobench::Bench bench; diff --git a/testmaps/base1leak.map b/testmaps/base1leak.map new file mode 100644 index 00000000..918c15ea --- /dev/null +++ b/testmaps/base1leak.map @@ -0,0 +1,88 @@ +// Game: Quake 2 +// Format: Quake2 +// entity 0 +{ +"sounds" "9" +"classname" "worldspawn" +"message" "Outer Base" +"sky" "unit1_" +"nextmap" "base2" +"_tb_textures" "textures;textures/e1u1;textures/e1u2;textures/e1u3;textures/e1u4;textures/e2u1;textures/e2u2;textures/e2u3;textures/e3u1;textures/e3u2;textures/e3u3;textures/radiant;textures/test" +// brush 0 +{ +( -1064 344 264 ) ( -1064 232 264 ) ( -1064 232 200 ) e1u1/grate1_3 0 0 0 1 1 +( -680 576 264 ) ( -448 576 264 ) ( -448 576 200 ) e1u1/grate1_3 0 0 0 1 1 +( -448 344 248 ) ( -680 344 248 ) ( -680 232 248 ) e1u1/grate1_3 0 0 0 1 1 +( -680 232 264 ) ( -680 344 264 ) ( -448 344 264 ) e1u1/grate1_3 0 0 0 1 1 +( -432 960 264 ) ( -664 960 264 ) ( -664 960 200 ) e1u1/grate1_3 0 0 0 1 1 +( -448 232 264 ) ( -448 344 264 ) ( -448 344 200 ) e1u1/grate1_3 0 0 0 1 1 +} +// brush 1 +{ +( -1064 984 128 ) ( -1064 960 128 ) ( -1064 960 -48 ) e1u1/grate2_2 0 0 0 1 1 +( -984 960 128 ) ( -972 960 128 ) ( -972 960 -48 ) e1u1/grate2_2 0 0 0 1 1 +( -972 984 -48 ) ( -984 984 -48 ) ( -984 960 -48 ) e1u1/grate2_2 0 0 0 1 1 +( -984 960 128 ) ( -984 984 128 ) ( -972 984 128 ) e1u1/grate2_2 0 0 0 1 1 +( -972 984 128 ) ( -984 984 128 ) ( -984 984 -48 ) e1u1/grate2_2 0 0 0 1 1 +( -808 944 128 ) ( -808 968 128 ) ( -808 968 -48 ) e1u1/grate2_2 0 0 0 1 1 +} +// brush 2 +{ +( -1032 984 192 ) ( -1032 960 192 ) ( -1032 960 128 ) e1u1/grate2_3 0 0 0 1 1 +( -1064 960 192 ) ( -1008 960 192 ) ( -1008 960 128 ) e1u1/color1_3 0 0 0 1 1 +( -1008 984 128 ) ( -1064 984 128 ) ( -1064 960 128 ) e1u1/grate2_3 0 0 0 1 1 +( -1064 960 256 ) ( -1064 984 256 ) ( -1008 984 256 ) e1u1/grate2_3 0 0 0 1 1 +( -976 984 192 ) ( -1032 984 192 ) ( -1032 984 128 ) e1u1/grate2_3 0 0 0 1 1 +( -496 936 192 ) ( -496 960 192 ) ( -496 960 128 ) e1u1/grate2_3 0 0 0 1 1 +} +// brush 3 +{ +( -836 1024 124 ) ( -836 960 124 ) ( -808 960 -48 ) e1u1/grate2_2 0 0 0 1 1 +( -836 960 128 ) ( -836 1024 128 ) ( -496 1024 132 ) e1u1/grate2_2 0 0 0 1 1 +( -760 960 96 ) ( -736 960 96 ) ( -736 960 -48 ) e1u1/grate2_2 0 0 0 1 1 +( -748 1024 -48 ) ( -772 1024 -48 ) ( -772 960 -48 ) e1u1/grate2_2 0 0 0 1 1 +( -736 1024 96 ) ( -760 1024 96 ) ( -760 1024 -48 ) e1u1/grate2_2 0 0 0 1 1 +( -496 952 96 ) ( -496 1016 96 ) ( -496 1016 -48 ) e1u1/grate2_2 0 0 0 1 1 +} +// brush 4 +{ +( -992 776 -48 ) ( -992 640 -48 ) ( -992 640 -64 ) e1u1/metal3_5 0 0 0 1 1 +( -832 592 -48 ) ( -704 592 -48 ) ( -704 592 -64 ) e1u1/metal3_5 0 0 0 1 1 +( -704 776 -64 ) ( -832 776 -64 ) ( -832 640 -64 ) e1u1/metal3_5 0 0 0 1 1 +( -832 640 -48 ) ( -832 776 -48 ) ( -704 776 -48 ) e1u1/metal3_5 0 0 0 1 1 +( -688 960 -48 ) ( -816 960 -48 ) ( -816 960 -64 ) e1u1/metal3_5 0 0 0 1 1 +( -496 624 -48 ) ( -496 760 -48 ) ( -496 760 -64 ) e1u1/metal3_5 0 0 0 1 1 +} +// brush 5 +{ +( -1024 592 -48 ) ( -1024 593 -48 ) ( -1024 592 -47 ) e1u1/grate1_4 0 0 0 1 1 +( -1024 592 -48 ) ( -1024 592 -47 ) ( -1023 592 -48 ) e1u1/grate1_4 0 0 0 1 1 +( -1024 592 -48 ) ( -1023 592 -48 ) ( -1024 593 -48 ) e1u1/grate1_4 0 0 0 1 1 +( -992 960 256 ) ( -992 961 256 ) ( -991 960 256 ) e1u1/grate1_4 0 0 0 1 1 +( -992 960 -32 ) ( -991 960 -32 ) ( -992 960 -31 ) e1u1/grate1_4 0 0 0 1 1 +( -992 960 -32 ) ( -992 960 -31 ) ( -992 961 -32 ) e1u1/grate1_4 0 0 0 1 1 +} +// brush 6 +{ +( -528 592 -48 ) ( -528 593 -48 ) ( -528 592 -47 ) e1u1/grate1_4 0 0 0 1 1 +( -528 592 -48 ) ( -528 592 -47 ) ( -527 592 -48 ) e1u1/grate1_4 16 0 0 1 1 +( -528 592 -48 ) ( -527 592 -48 ) ( -528 593 -48 ) e1u1/grate1_4 16 0 0 1 1 +( -496 960 256 ) ( -496 961 256 ) ( -495 960 256 ) e1u1/grate1_4 16 0 0 1 1 +( -496 960 -32 ) ( -495 960 -32 ) ( -496 960 -31 ) e1u1/grate1_4 16 0 0 1 1 +( -496 960 -32 ) ( -496 960 -31 ) ( -496 961 -32 ) e1u1/grate1_4 0 0 0 1 1 +} +// brush 7 +{ +( -992 960 -32 ) ( -992 961 -32 ) ( -992 960 -31 ) e1u1/grate1_4 0 0 0 1 1 +( -1024 592 -48 ) ( -1024 592 -47 ) ( -1023 592 -48 ) e1u1/grate1_4 0 0 0 1 1 +( -1024 592 -48 ) ( -1023 592 -48 ) ( -1024 593 -48 ) e1u1/grate1_4 0 0 0 1 1 +( -992 960 256 ) ( -992 961 256 ) ( -991 960 256 ) e1u1/grate1_4 0 0 0 1 1 +( -992 608 -32 ) ( -991 608 -32 ) ( -992 608 -31 ) e1u1/grate1_4 0 0 0 1 1 +( -512 960 -32 ) ( -512 960 -31 ) ( -512 961 -32 ) e1u1/grate1_4 0 0 0 1 1 +} +} +// entity 1 +{ +"classname" "info_player_start" +"origin" "-800 704 -24" +}