[Tests] Fix filepath handling and temp directory location on Win32 builds.

pull/2125/head
John Ralls 8 months ago
parent 6fda0321a7
commit 1af9e33d81

@ -51,8 +51,11 @@
(gnc:html-document-set-style-sheet! document (gnc:report-stylesheet report))
(if test-title
(gnc:html-document-set-title! document test-title))
(let ((render (gnc:html-document-render document)))
(call-with-output-file (format #f "/tmp/~a-~a.html"
(let ((render (gnc:html-document-render document))
(tmpdir (if (eq? (system-file-name-convention) 'windows)
(getenv "TMP")
"/tmp")))
(call-with-output-file (format #f "~a/~a-~a.html" tmpdir
(string-map sanitize-char prefix)
(string-map sanitize-char test-title))
(lambda (p)

@ -802,8 +802,11 @@ HTML Document Title</title></head><body></body>\n\
(let* ((doc (gnc:make-html-document)))
(gnc:html-document-set-style-sheet! doc (gnc:html-style-sheet-find "Default"))
(gnc:html-document-add-object! doc table)
(let ((render (gnc:html-document-render doc)))
(call-with-output-file (format #f "/tmp/html-acct-table-~a.html" prefix)
(let ((render (gnc:html-document-render doc))
(tmpdir (if (eq? (system-file-name-convention) 'windows)
(getenv "TMP")
"/tmp")))
(call-with-output-file (format #f "~a/html-acct-table-~a.html" tmpdir prefix)
(lambda (p)
(display render p)))
(xml->sxml render

@ -40,6 +40,7 @@
#include <TransLog.h>
#include <gnc-engine.h>
#include <gnc-prefs.h>
#include <gnc-uri-utils.h>
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcpp"
@ -208,6 +209,7 @@ public:
TEST_P(LoadSaveFiles, test_file)
{
auto filename = GetParam();
auto base_url = gnc_uri_normalize_uri (filename.c_str (), FALSE);
/* Verify that we can write a compressed version of the original file that
* has the original content when uncompressed.
*/
@ -215,7 +217,9 @@ TEST_P(LoadSaveFiles, test_file)
/* Verify that we can read a compressed file and write an uncompressed file
* that has the original content.
*/
auto compressed_url = gnc_uri_normalize_uri (new_compressed_file.c_str (), FALSE);
auto new_uncompressed_file = filename + "-test-uncompressed~";
auto uncompressed_url = gnc_uri_normalize_uri (new_uncompressed_file.c_str (), FALSE);
const char *logdomain = "backend.xml";
GLogLevelFlags loglevel = static_cast<decltype (loglevel)>
(G_LOG_LEVEL_WARNING);
@ -226,14 +230,15 @@ TEST_P(LoadSaveFiles, test_file)
{
auto load_uncompressed_session = std::shared_ptr<QofSession>{qof_session_new (qof_book_new ()), qof_session_destroy};
QOF_SESSION_CHECKED_CALL(qof_session_begin, load_uncompressed_session, filename.c_str (), SESSION_READ_ONLY);
QOF_SESSION_CHECKED_CALL(qof_session_begin, load_uncompressed_session, base_url, SESSION_READ_ONLY);
QOF_SESSION_CHECKED_CALL(qof_session_load, load_uncompressed_session, nullptr);
auto save_compressed_session = std::shared_ptr<QofSession>{qof_session_new (nullptr), qof_session_destroy};
g_unlink (new_compressed_file.c_str ());
g_unlink ((new_compressed_file + ".LCK").c_str ());
QOF_SESSION_CHECKED_CALL(qof_session_begin, save_compressed_session, new_compressed_file.c_str (), SESSION_NEW_OVERWRITE);
QOF_SESSION_CHECKED_CALL(qof_session_begin, save_compressed_session, compressed_url, SESSION_NEW_OVERWRITE);
qof_event_suspend ();
qof_session_swap_data (load_uncompressed_session.get (), save_compressed_session.get ());
@ -254,14 +259,14 @@ TEST_P(LoadSaveFiles, test_file)
{
auto load_compressed_session = std::shared_ptr<QofSession>{qof_session_new (qof_book_new ()), qof_session_destroy};
QOF_SESSION_CHECKED_CALL(qof_session_begin, load_compressed_session, new_compressed_file.c_str (), SESSION_READ_ONLY);
QOF_SESSION_CHECKED_CALL(qof_session_begin, load_compressed_session, compressed_url, SESSION_READ_ONLY);
QOF_SESSION_CHECKED_CALL(qof_session_load, load_compressed_session, nullptr);
auto save_uncompressed_session = std::shared_ptr<QofSession>{qof_session_new (nullptr), qof_session_destroy};
g_unlink (new_uncompressed_file.c_str ());
g_unlink ((new_uncompressed_file + ".LCK").c_str ());
QOF_SESSION_CHECKED_CALL(qof_session_begin, save_uncompressed_session, new_uncompressed_file.c_str (), SESSION_NEW_OVERWRITE);
QOF_SESSION_CHECKED_CALL(qof_session_begin, save_uncompressed_session, uncompressed_url, SESSION_NEW_OVERWRITE);
qof_event_suspend ();
qof_session_swap_data (load_compressed_session.get (), save_uncompressed_session.get ());
@ -276,6 +281,10 @@ TEST_P(LoadSaveFiles, test_file)
qof_session_end (save_uncompressed_session.get ());
}
g_free (base_url);
g_free (compressed_url);
g_free (uncompressed_url);
if (!compare_files (filename, new_uncompressed_file))
return;
}

@ -30,6 +30,7 @@
#include <gnc-prefs.h>
#include <Account.hpp>
#include <gnc-datetime.hpp>
#include <gnc-uri-utils.h>
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcpp"
@ -62,8 +63,11 @@ static QofBook*
session_load (QofSession* session, const char* filename)
{
if (!session || !filename) return nullptr;
auto url = gnc_uri_normalize_uri (filename, FALSE);
qof_session_begin (session, url, SESSION_READ_ONLY);
g_free (url);
qof_session_begin (session, filename, SESSION_READ_ONLY);
if (qof_session_get_error(session) != 0)
{
std::cerr << "Session begin failed: " << qof_session_get_error_message(session);

@ -43,6 +43,7 @@
#include <TransLog.h>
#include <gnc-engine.h>
#include <gnc-prefs.h>
#include <gnc-uri-utils.h>
#include <unittest-support.h>
#include <test-engine-stuff.h>
@ -91,13 +92,15 @@ test_load_file (const char* filename)
auto book = qof_book_new();
auto session = qof_session_new (book);
auto url = gnc_uri_normalize_uri (filename, FALSE);
remove_locks (filename);
ignore_lock = (g_strcmp0 (g_getenv ("SRCDIR"), ".") != 0);
/* gnc_prefs_set_file_save_compressed(FALSE); */
qof_session_begin (session, filename,
qof_session_begin (session, url,
ignore_lock ? SESSION_READ_ONLY : SESSION_NORMAL_OPEN);
g_free (url);
qof_session_load (session, NULL);

Loading…
Cancel
Save