lmi-commits
[Top][All Lists]
Advanced

[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;
 }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]