[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master 3c8eb6a 2/2: Use $data_dir for unit-test prer
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master 3c8eb6a 2/2: Use $data_dir for unit-test prerequisite files |
Date: |
Fri, 5 May 2017 17:02:16 -0400 (EDT) |
branch: master
commit 3c8eb6a517749fae34dd4dfc14d3bb6c6e7f88b5
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>
Use $data_dir for unit-test prerequisite files
Formerly, these unit tests wrote local copies of product data files for
the 'sample' product, resulting in filesystem races when the tests were
run in parallel. Now, the data files already installed in $data_dir are
used instead. The directory is hardcoded as '/opt/lmi/data', following
the practice already used in 'input_test'.
---
premium_tax_test.cpp | 17 +++++------------
product_file_test.cpp | 28 ++++++++++++++--------------
2 files changed, 19 insertions(+), 26 deletions(-)
diff --git a/premium_tax_test.cpp b/premium_tax_test.cpp
index 9c720bc..4ca4750 100644
--- a/premium_tax_test.cpp
+++ b/premium_tax_test.cpp
@@ -23,8 +23,10 @@
#include "premium_tax.hpp"
+#include "data_directory.hpp" // AddDataDir()
#include "database.hpp"
#include "dbdict.hpp"
+#include "global_settings.hpp"
#include "path_utility.hpp" // initialize_filesystem()
#include "product_data.hpp"
#include "stratified_charges.hpp"
@@ -35,24 +37,15 @@ class premium_tax_test
public:
static void test()
{
- write_prerequisite_files();
+ // Location of product files.
+ global_settings::instance().set_data_directory("/opt/lmi/data");
test_rates();
}
private:
- static void write_prerequisite_files();
static void test_rates();
};
-void premium_tax_test::write_prerequisite_files()
-{
- DBDictionary ::write_database_files ();
- // product_database::initialize() requires a real '.product' file,
- // even though it's not otherwise used in this TU.
- product_data ::write_policy_files ();
- stratified_charges ::write_strata_files ();
-}
-
/// Test premium-tax rates.
void premium_tax_test::test_rates()
@@ -66,7 +59,7 @@ void premium_tax_test::test_rates()
,mce_nonmedical
,mce_s_CT
);
- stratified_charges strata("sample.strata");
+ stratified_charges strata(AddDataDir("sample.strata"));
// Tax state = domicile; not tiered.
{
diff --git a/product_file_test.cpp b/product_file_test.cpp
index 0591a7b..1c8f4ea 100644
--- a/product_file_test.cpp
+++ b/product_file_test.cpp
@@ -21,8 +21,10 @@
#include "pchfile.hpp"
+#include "data_directory.hpp" // AddDataDir()
#include "dbdict.hpp"
#include "fund_data.hpp"
+#include "global_settings.hpp"
#include "path_utility.hpp" // initialize_filesystem()
#include "product_data.hpp"
#include "rounding_rules.hpp"
@@ -38,13 +40,14 @@ class product_file_test
public:
static void test()
{
- initialize_filesystem();
- write_all_files();
+ // Location of product files.
+ global_settings::instance().set_data_directory("/opt/lmi/data");
+ get_filenames();
assay_speed();
}
private:
- static void write_all_files();
+ static void get_filenames();
static void assay_speed();
static void read_database_file() ;
static void read_fund_file() ;
@@ -65,20 +68,14 @@ std::string product_file_test::policy_filename_ ;
std::string product_file_test::rounding_filename_ ;
std::string product_file_test::stratified_filename_ ;
-void product_file_test::write_all_files()
+void product_file_test::get_filenames()
{
- DBDictionary ::write_database_files ();
- FundData ::write_funds_files ();
- product_data ::write_policy_files ();
- rounding_rules ::write_rounding_files ();
- stratified_charges ::write_strata_files ();
-
policy_filename_ = "sample";
product_data p(policy_filename_);
- database_filename_ = p.datum("DatabaseFilename");
- fund_filename_ = p.datum("FundFilename" );
- rounding_filename_ = p.datum("RoundingFilename");
- stratified_filename_ = p.datum("TierFilename" );
+ database_filename_ = AddDataDir(p.datum("DatabaseFilename"));
+ fund_filename_ = AddDataDir(p.datum("FundFilename" ));
+ rounding_filename_ = AddDataDir(p.datum("RoundingFilename"));
+ stratified_filename_ = AddDataDir(p.datum("TierFilename" ));
}
void product_file_test::read_database_file()
@@ -121,6 +118,9 @@ void product_file_test::assay_speed()
int test_main(int, char*[])
{
+ // Absolute paths require "native" name-checking policy for msw.
+ initialize_filesystem();
+
product_file_test::test();
return EXIT_SUCCESS;
}