Skip to content

Commit 1af9e33

Browse files
committed
[Tests] Fix filepath handling and temp directory location on Win32 builds.
1 parent 6fda032 commit 1af9e33

File tree

5 files changed

+32
-10
lines changed

5 files changed

+32
-10
lines changed

gnucash/report/test/test-report-extras.scm

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,11 @@
5151
(gnc:html-document-set-style-sheet! document (gnc:report-stylesheet report))
5252
(if test-title
5353
(gnc:html-document-set-title! document test-title))
54-
(let ((render (gnc:html-document-render document)))
55-
(call-with-output-file (format #f "/tmp/~a-~a.html"
54+
(let ((render (gnc:html-document-render document))
55+
(tmpdir (if (eq? (system-file-name-convention) 'windows)
56+
(getenv "TMP")
57+
"/tmp")))
58+
(call-with-output-file (format #f "~a/~a-~a.html" tmpdir
5659
(string-map sanitize-char prefix)
5760
(string-map sanitize-char test-title))
5861
(lambda (p)

gnucash/report/test/test-report-html.scm

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -802,8 +802,11 @@ HTML Document Title</title></head><body></body>\n\
802802
(let* ((doc (gnc:make-html-document)))
803803
(gnc:html-document-set-style-sheet! doc (gnc:html-style-sheet-find "Default"))
804804
(gnc:html-document-add-object! doc table)
805-
(let ((render (gnc:html-document-render doc)))
806-
(call-with-output-file (format #f "/tmp/html-acct-table-~a.html" prefix)
805+
(let ((render (gnc:html-document-render doc))
806+
(tmpdir (if (eq? (system-file-name-convention) 'windows)
807+
(getenv "TMP")
808+
"/tmp")))
809+
(call-with-output-file (format #f "~a/html-acct-table-~a.html" tmpdir prefix)
807810
(lambda (p)
808811
(display render p)))
809812
(xml->sxml render

libgnucash/backend/xml/test/gtest-load-save-files.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#include <TransLog.h>
4141
#include <gnc-engine.h>
4242
#include <gnc-prefs.h>
43+
#include <gnc-uri-utils.h>
4344

4445
#pragma GCC diagnostic push
4546
#pragma GCC diagnostic ignored "-Wcpp"
@@ -208,14 +209,17 @@ class LoadSaveFiles : public testing::TestWithParam<std::string>
208209
TEST_P(LoadSaveFiles, test_file)
209210
{
210211
auto filename = GetParam();
212+
auto base_url = gnc_uri_normalize_uri (filename.c_str (), FALSE);
211213
/* Verify that we can write a compressed version of the original file that
212214
* has the original content when uncompressed.
213215
*/
214216
auto new_compressed_file = filename + "-test-compressed~";
215217
/* Verify that we can read a compressed file and write an uncompressed file
216218
* that has the original content.
217219
*/
220+
auto compressed_url = gnc_uri_normalize_uri (new_compressed_file.c_str (), FALSE);
218221
auto new_uncompressed_file = filename + "-test-uncompressed~";
222+
auto uncompressed_url = gnc_uri_normalize_uri (new_uncompressed_file.c_str (), FALSE);
219223
const char *logdomain = "backend.xml";
220224
GLogLevelFlags loglevel = static_cast<decltype (loglevel)>
221225
(G_LOG_LEVEL_WARNING);
@@ -226,14 +230,15 @@ TEST_P(LoadSaveFiles, test_file)
226230
{
227231
auto load_uncompressed_session = std::shared_ptr<QofSession>{qof_session_new (qof_book_new ()), qof_session_destroy};
228232

229-
QOF_SESSION_CHECKED_CALL(qof_session_begin, load_uncompressed_session, filename.c_str (), SESSION_READ_ONLY);
233+
QOF_SESSION_CHECKED_CALL(qof_session_begin, load_uncompressed_session, base_url, SESSION_READ_ONLY);
230234
QOF_SESSION_CHECKED_CALL(qof_session_load, load_uncompressed_session, nullptr);
231235

232236
auto save_compressed_session = std::shared_ptr<QofSession>{qof_session_new (nullptr), qof_session_destroy};
233237

234238
g_unlink (new_compressed_file.c_str ());
235239
g_unlink ((new_compressed_file + ".LCK").c_str ());
236-
QOF_SESSION_CHECKED_CALL(qof_session_begin, save_compressed_session, new_compressed_file.c_str (), SESSION_NEW_OVERWRITE);
240+
241+
QOF_SESSION_CHECKED_CALL(qof_session_begin, save_compressed_session, compressed_url, SESSION_NEW_OVERWRITE);
237242

238243
qof_event_suspend ();
239244
qof_session_swap_data (load_uncompressed_session.get (), save_compressed_session.get ());
@@ -254,14 +259,14 @@ TEST_P(LoadSaveFiles, test_file)
254259
{
255260
auto load_compressed_session = std::shared_ptr<QofSession>{qof_session_new (qof_book_new ()), qof_session_destroy};
256261

257-
QOF_SESSION_CHECKED_CALL(qof_session_begin, load_compressed_session, new_compressed_file.c_str (), SESSION_READ_ONLY);
262+
QOF_SESSION_CHECKED_CALL(qof_session_begin, load_compressed_session, compressed_url, SESSION_READ_ONLY);
258263
QOF_SESSION_CHECKED_CALL(qof_session_load, load_compressed_session, nullptr);
259264

260265
auto save_uncompressed_session = std::shared_ptr<QofSession>{qof_session_new (nullptr), qof_session_destroy};
261266

262267
g_unlink (new_uncompressed_file.c_str ());
263268
g_unlink ((new_uncompressed_file + ".LCK").c_str ());
264-
QOF_SESSION_CHECKED_CALL(qof_session_begin, save_uncompressed_session, new_uncompressed_file.c_str (), SESSION_NEW_OVERWRITE);
269+
QOF_SESSION_CHECKED_CALL(qof_session_begin, save_uncompressed_session, uncompressed_url, SESSION_NEW_OVERWRITE);
265270

266271
qof_event_suspend ();
267272
qof_session_swap_data (load_compressed_session.get (), save_uncompressed_session.get ());
@@ -276,6 +281,10 @@ TEST_P(LoadSaveFiles, test_file)
276281
qof_session_end (save_uncompressed_session.get ());
277282
}
278283

284+
g_free (base_url);
285+
g_free (compressed_url);
286+
g_free (uncompressed_url);
287+
279288
if (!compare_files (filename, new_uncompressed_file))
280289
return;
281290
}

libgnucash/backend/xml/test/gtest-xml-contents.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include <gnc-prefs.h>
3131
#include <Account.hpp>
3232
#include <gnc-datetime.hpp>
33+
#include <gnc-uri-utils.h>
3334

3435
#pragma GCC diagnostic push
3536
#pragma GCC diagnostic ignored "-Wcpp"
@@ -62,8 +63,11 @@ static QofBook*
6263
session_load (QofSession* session, const char* filename)
6364
{
6465
if (!session || !filename) return nullptr;
66+
auto url = gnc_uri_normalize_uri (filename, FALSE);
67+
68+
qof_session_begin (session, url, SESSION_READ_ONLY);
69+
g_free (url);
6570

66-
qof_session_begin (session, filename, SESSION_READ_ONLY);
6771
if (qof_session_get_error(session) != 0)
6872
{
6973
std::cerr << "Session begin failed: " << qof_session_get_error_message(session);

libgnucash/backend/xml/test/test-load-xml2.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
#include <TransLog.h>
4444
#include <gnc-engine.h>
4545
#include <gnc-prefs.h>
46+
#include <gnc-uri-utils.h>
4647

4748
#include <unittest-support.h>
4849
#include <test-engine-stuff.h>
@@ -91,13 +92,15 @@ test_load_file (const char* filename)
9192

9293
auto book = qof_book_new();
9394
auto session = qof_session_new (book);
95+
auto url = gnc_uri_normalize_uri (filename, FALSE);
9496

9597
remove_locks (filename);
9698

9799
ignore_lock = (g_strcmp0 (g_getenv ("SRCDIR"), ".") != 0);
98100
/* gnc_prefs_set_file_save_compressed(FALSE); */
99-
qof_session_begin (session, filename,
101+
qof_session_begin (session, url,
100102
ignore_lock ? SESSION_READ_ONLY : SESSION_NORMAL_OPEN);
103+
g_free (url);
101104

102105
qof_session_load (session, NULL);
103106

0 commit comments

Comments
 (0)