Skip to content

Commit 4d90e3a

Browse files
committed
Refactor older tests to use dynamic temp files.
1 parent 67ca7b9 commit 4d90e3a

File tree

5 files changed

+106
-114
lines changed

5 files changed

+106
-114
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@
108108
/src/lua-plugin-preload.c
109109
/src/lua-plugin-preload.h
110110

111-
/tests/.tmpfile*
112111
/tests/all-tests
113112
/tests/all-tests.exe
114113
/tests/document.t

tests/BufferTest.h

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Reverse Engineer's Hex Editor
2-
* Copyright (C) 2017-2024 Daniel Collins <solemnwarning@solemnwarning.net>
2+
* Copyright (C) 2017-2025 Daniel Collins <solemnwarning@solemnwarning.net>
33
*
44
* This program is free software; you can redistribute it and/or modify it
55
* under the terms of the GNU General Public License version 2 as published by
@@ -33,69 +33,68 @@
3333
#define UNIT_TEST
3434
#include "../src/buffer.hpp"
3535

36-
#define TMPFILE "tests/.tmpfile"
37-
#define TMPFILE2 "tests/.tmpfile2"
38-
3936
#define TEST_BUFFER_MANIP(buffer_manip_code) \
4037
{ \
41-
write_file(TMPFILE, BEGIN_DATA); \
42-
REHex::Buffer b(TMPFILE, 8); \
38+
TempFile tmpfile(BEGIN_DATA.data(), BEGIN_DATA.size()); \
39+
REHex::Buffer b(tmpfile.tmpfile, 8); \
4340
buffer_manip_code; \
4441
std::vector<unsigned char> got_data = b.read_data(0, 1024); \
4542
EXPECT_EQ(got_data, END_DATA) << "Buffer::read_data() returns correct data"; \
4643
} \
4744
{ \
48-
write_file(TMPFILE, BEGIN_DATA); \
49-
REHex::Buffer b(TMPFILE, 8); \
45+
TempFile tmpfile(BEGIN_DATA.data(), BEGIN_DATA.size()); \
46+
REHex::Buffer b(tmpfile.tmpfile, 8); \
5047
buffer_manip_code; \
5148
b.write_inplace(); \
52-
std::vector<unsigned char> got_data = read_file(TMPFILE); \
49+
std::vector<unsigned char> got_data = read_file(tmpfile.tmpfile); \
5350
EXPECT_EQ(got_data, END_DATA) << "write_inplace() produces file with correct data"; \
5451
} \
5552
{ \
56-
write_file(TMPFILE, BEGIN_DATA); \
57-
REHex::Buffer b(TMPFILE, 8); \
53+
TempFile tmpfile(BEGIN_DATA.data(), BEGIN_DATA.size()); \
54+
REHex::Buffer b(tmpfile.tmpfile, 8); \
5855
buffer_manip_code; \
59-
b.write_copy(TMPFILE2); \
60-
std::vector<unsigned char> got_data = read_file(TMPFILE2); \
56+
TempFilename tmpfile2; \
57+
b.write_copy(tmpfile2.tmpfile); \
58+
std::vector<unsigned char> got_data = read_file(tmpfile2.tmpfile); \
6159
EXPECT_EQ(got_data, END_DATA) << "write_copy() produces file with correct data"; \
6260
} \
6361
{ \
64-
write_file(TMPFILE, BEGIN_DATA); \
65-
REHex::Buffer b(TMPFILE, 8); \
62+
TempFile tmpfile(BEGIN_DATA.data(), BEGIN_DATA.size()); \
63+
REHex::Buffer b(tmpfile.tmpfile, 8); \
6664
buffer_manip_code; \
67-
b.write_inplace(TMPFILE); \
68-
std::vector<unsigned char> got_data = read_file(TMPFILE); \
65+
b.write_inplace(tmpfile.tmpfile); \
66+
std::vector<unsigned char> got_data = read_file(tmpfile.tmpfile); \
6967
EXPECT_EQ(got_data, END_DATA) << "write_inplace(<same file>) produces file with correct data"; \
7068
} \
7169
{ \
72-
write_file(TMPFILE, BEGIN_DATA); \
73-
REHex::Buffer b(TMPFILE, 8); \
70+
TempFile tmpfile(BEGIN_DATA.data(), BEGIN_DATA.size()); \
71+
REHex::Buffer b(tmpfile.tmpfile, 8); \
7472
buffer_manip_code; \
75-
if(unlink(TMPFILE2) != 0 && errno != ENOENT) { throw std::runtime_error("Unable to unlink temporary file"); } \
76-
b.write_inplace(TMPFILE2); \
77-
std::vector<unsigned char> got_data = read_file(TMPFILE2); \
73+
TempFilename tmpfile2; \
74+
if(unlink(tmpfile2.tmpfile) != 0 && errno != ENOENT) { throw std::runtime_error("Unable to unlink temporary file"); } \
75+
b.write_inplace(tmpfile2.tmpfile); \
76+
std::vector<unsigned char> got_data = read_file(tmpfile2.tmpfile); \
7877
EXPECT_EQ(got_data, END_DATA) << "write_inplace(<new file>) produces file with correct data"; \
7978
} \
8079
if(END_DATA.size() > 0) \
8180
{ \
82-
write_file(TMPFILE, BEGIN_DATA); \
83-
REHex::Buffer b(TMPFILE, 8); \
81+
TempFile tmpfile(BEGIN_DATA.data(), BEGIN_DATA.size()); \
82+
REHex::Buffer b(tmpfile.tmpfile, 8); \
8483
buffer_manip_code; \
8584
std::vector<unsigned char> tf2data((END_DATA.size() - 1), 0xFF); \
86-
write_file(TMPFILE2, tf2data); \
87-
b.write_inplace(TMPFILE2); \
88-
std::vector<unsigned char> got_data = read_file(TMPFILE2); \
85+
TempFile tmpfile2(tf2data.data(), tf2data.size()); \
86+
b.write_inplace(tmpfile2.tmpfile); \
87+
std::vector<unsigned char> got_data = read_file(tmpfile2.tmpfile); \
8988
EXPECT_EQ(got_data, END_DATA) << "write_inplace(<smaller file>) produces file with correct data"; \
9089
} \
9190
{ \
92-
write_file(TMPFILE, BEGIN_DATA); \
93-
REHex::Buffer b(TMPFILE, 8); \
91+
TempFile tmpfile(BEGIN_DATA.data(), BEGIN_DATA.size()); \
92+
REHex::Buffer b(tmpfile.tmpfile, 8); \
9493
buffer_manip_code; \
9594
std::vector<unsigned char> tf2data((END_DATA.size() + 1), 0xFF); \
96-
write_file(TMPFILE2, tf2data); \
97-
b.write_inplace(TMPFILE2); \
98-
std::vector<unsigned char> got_data = read_file(TMPFILE2); \
95+
TempFile tmpfile2(tf2data.data(), tf2data.size()); \
96+
b.write_inplace(tmpfile2.tmpfile); \
97+
std::vector<unsigned char> got_data = read_file(tmpfile2.tmpfile); \
9998
EXPECT_EQ(got_data, END_DATA) << "write_inplace(<larger file>) produces file with correct data"; \
10099
}
101100

tests/BufferTest1.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* Reverse Engineer's Hex Editor
2-
* Copyright (C) 2017-2024 Daniel Collins <solemnwarning@solemnwarning.net>
2+
* Copyright (C) 2017-2025 Daniel Collins <solemnwarning@solemnwarning.net>
33
*
44
* This program is free software; you can redistribute it and/or modify it
55
* under the terms of the GNU General Public License version 2 as published by
@@ -17,6 +17,8 @@
1717

1818
#include "BufferTest.h"
1919

20+
#include "testutil.hpp"
21+
2022
TEST(Buffer, DefaultConstructor)
2123
{
2224
REHex::Buffer b;
@@ -41,9 +43,9 @@ TEST(Buffer, LoadConstructorNonEmptyFile)
4143
0x8B, 0xC8, 0x97, 0x84, 0xC4, 0x26, 0x2C,
4244
};
4345

44-
write_file(TMPFILE, file_data);
46+
TempFile tmpfile(file_data.data(), file_data.size());
4547

46-
REHex::Buffer b(TMPFILE, 8);
48+
REHex::Buffer b(tmpfile.tmpfile, 8);
4749

4850
ASSERT_EQ(b.blocks.size(), 3U) << "Constructor creates correct number of blocks";
4951

@@ -67,10 +69,9 @@ TEST(Buffer, LoadConstructorNonEmptyFile)
6769

6870
TEST(Buffer, LoadConstructorEmptyFile)
6971
{
70-
const std::vector<unsigned char> file_data;
71-
write_file(TMPFILE, file_data);
72+
TempFile tmpfile(NULL, 0);
7273

73-
REHex::Buffer b(TMPFILE, 8);
74+
REHex::Buffer b(tmpfile.tmpfile, 8);
7475

7576
ASSERT_EQ(b.blocks.size(), 1U) << "Constructor creates correct number of blocks";
7677

@@ -90,9 +91,9 @@ TEST(Buffer, LoadConstructorEmptyFile)
9091
0x1B, 0x84, 0x09, 0x76, 0x8D, 0xAC, 0xFC, 0xF8, \
9192
0x8B, 0xC8, 0x97, 0x84, 0xC4, 0x26, 0x2C, \
9293
}; \
93-
write_file(TMPFILE, file_data); \
94+
TempFile tmpfile(file_data.data(), file_data.size()); \
9495
\
95-
REHex::Buffer b(TMPFILE, 8);
96+
REHex::Buffer b(tmpfile.tmpfile, 8);
9697

9798
#define READ_DATA_UNLOADED(block_i) \
9899
{ \

0 commit comments

Comments
 (0)