Add simple test for git storage

This just makes sure that writing data to git storage and reading it back
gives you the same result. Without the fixed generation of initial dive
site UUIDs this fails.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-08-24 09:32:27 -07:00
parent eb205c1b09
commit 6eed3155e6
3 changed files with 51 additions and 0 deletions

View file

@ -571,6 +571,7 @@ if(NOT NO_TESTS)
TEST(TestProfile testprofile.cpp)
TEST(TestGpsCoords testgpscoords.cpp)
TEST(TestParse testparse.cpp)
TEST(TestGitStorage testgitstorage.cpp)
TEST(TestPlan testplan.cpp)
endif()

37
tests/testgitstorage.cpp Normal file
View file

@ -0,0 +1,37 @@
#include "testgitstorage.h"
#include "dive.h"
#include "divelist.h"
#include "file.h"
#include "git2.h"
#include <QDir>
#include <QTextStream>
void TestGitStorage::testGitStorageLocal()
{
// test writing and reading back from local git storage
git_repository *repo;
git_libgit2_init();
QCOMPARE(parse_file(SUBSURFACE_SOURCE "/dives/SampleDivesV2.ssrf"), 0);
QString testDirName("./gittest");
QDir testDir(testDirName);
QCOMPARE(testDir.removeRecursively(), true);
QCOMPARE(QDir().mkdir(testDirName), true);
QCOMPARE(git_repository_init(&repo, qPrintable(testDirName), false), 0);
QCOMPARE(save_dives(qPrintable(testDirName + "[test]")), 0);
QCOMPARE(save_dives("./SampleDivesV3.ssrf"), 0);
clear_dive_file_data();
QCOMPARE(parse_file(qPrintable(testDirName + "[test]")), 0);
QCOMPARE(save_dives("./SampleDivesV3viagit.ssrf"), 0);
QFile org("./SampleDivesV3.ssrf");
org.open(QFile::ReadOnly);
QFile out("./SampleDivesV3viagit.ssrf");
out.open(QFile::ReadOnly);
QTextStream orgS(&org);
QTextStream outS(&out);
QString readin = orgS.readAll();
QString written = outS.readAll();
QCOMPARE(readin, written);
clear_dive_file_data();
}
QTEST_MAIN(TestGitStorage)

13
tests/testgitstorage.h Normal file
View file

@ -0,0 +1,13 @@
#ifndef TESTGITSTORAGE_H
#define TESTGITSTORAGE_H
#include <QTest>
class TestGitStorage : public QObject
{
Q_OBJECT
private slots:
void testGitStorageLocal();
};
#endif // TESTGITSTORAGE_H