aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-08-24 09:32:27 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-08-25 10:43:41 -0700
commit6eed3155e6a84f1b27b5340b45d6deb801fee42d (patch)
treed22bc1723f296880327e607bf73f15d24b8ef74a /tests
parenteb205c1b090b94f4812358c8835065491d149c6b (diff)
downloadsubsurface-6eed3155e6a84f1b27b5340b45d6deb801fee42d.tar.gz
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>
Diffstat (limited to 'tests')
-rw-r--r--tests/testgitstorage.cpp37
-rw-r--r--tests/testgitstorage.h13
2 files changed, 50 insertions, 0 deletions
diff --git a/tests/testgitstorage.cpp b/tests/testgitstorage.cpp
new file mode 100644
index 000000000..abb4b2c59
--- /dev/null
+++ b/tests/testgitstorage.cpp
@@ -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)
diff --git a/tests/testgitstorage.h b/tests/testgitstorage.h
new file mode 100644
index 000000000..b182d4a22
--- /dev/null
+++ b/tests/testgitstorage.h
@@ -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