From cc3435d13d3f09efa54b26a7e2b4f798c7dd0b72 Mon Sep 17 00:00:00 2001 From: Allan Bowe Date: Tue, 8 Mar 2022 16:52:22 +0000 Subject: [PATCH 1/4] fix: ensuring audit table gets loaded in mp_loadformat. Adding test also. Closes #190 --- all.sas | 3 +++ base/mp_loadformat.sas | 3 +++ tests/crossplatform/mp_loadformat.test.sas | 10 +++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/all.sas b/all.sas index 712a034..dc9ab92 100644 --- a/all.sas +++ b/all.sas @@ -8872,6 +8872,9 @@ options ibufsize=&ibufsize; ,mdebug=&mdebug ) + proc append base=&auditlibds data=&storediffs; + run; + %if &locklibds ne 0 %then %do; %mp_lockanytable(UNLOCK ,lib=%scan(&auditlibds,1,.) diff --git a/base/mp_loadformat.sas b/base/mp_loadformat.sas index 6d6e308..d06b083 100644 --- a/base/mp_loadformat.sas +++ b/base/mp_loadformat.sas @@ -272,6 +272,9 @@ options ibufsize=&ibufsize; ,mdebug=&mdebug ) + proc append base=&auditlibds data=&storediffs; + run; + %if &locklibds ne 0 %then %do; %mp_lockanytable(UNLOCK ,lib=%scan(&auditlibds,1,.) diff --git a/tests/crossplatform/mp_loadformat.test.sas b/tests/crossplatform/mp_loadformat.test.sas index 414a454..cf75f9c 100644 --- a/tests/crossplatform/mp_loadformat.test.sas +++ b/tests/crossplatform/mp_loadformat.test.sas @@ -3,6 +3,7 @@ @brief Testing mp_loadformat.sas macro

SAS Macros

+ @li mddl_dc_difftable.sas @li mp_loadformat.sas @li mp_assert.sas @li mp_assertscope.sas @@ -12,6 +13,8 @@ /* prep format catalog */ libname perm (work); +%mddl_dc_difftable(libds=perm.audit) + data work.loadfmts; length fmtname $32; eexcl='Y'; @@ -49,7 +52,7 @@ run; %mp_loadformat(perm.testcat ,work.stagedata ,loadtarget=YES - ,auditlibds=0 + ,auditlibds=perm.audit ,locklibds=0 ,delete_col=deleteme ,outds_add=add_test1 @@ -73,4 +76,9 @@ run; iftrue=(%mf_nobs(mod_test1)=100), desc=Test 1 - mod obs, outds=work.test_results +) +%mp_assert( + iftrue=(%mf_nobs(perm.audit)=100), + desc=Test 1 - mod obs, + outds=work.test_results ) \ No newline at end of file From 854ff696d874246bdb014ab26140effefd901e58 Mon Sep 17 00:00:00 2001 From: munja Date: Tue, 8 Mar 2022 19:33:46 +0000 Subject: [PATCH 2/4] fix: adding missing dependency in mp_loadformat --- base/mp_loadformat.sas | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base/mp_loadformat.sas b/base/mp_loadformat.sas index d06b083..e1e32eb 100644 --- a/base/mp_loadformat.sas +++ b/base/mp_loadformat.sas @@ -40,13 +40,13 @@ @li mp_abort.sas @li mp_cntlout.sas @li mp_lockanytable.sas + @li mp_storediffs.sas

Related Macros

@li mddl_dc_difftable.sas @li mddl_dc_locktable.sas @li mp_loadformat.test.sas @li mp_lockanytable.sas - @li mp_storediffs.sas @li mp_stackdiffs.sas @@ -298,4 +298,4 @@ options ibufsize=&ibufsize; %put &sysmacroname exit vars:; %put _local_; %end; -%mend mp_loadformat; \ No newline at end of file +%mend mp_loadformat; From 33cec61a13861e9355fe40b63de04e5251e3fde3 Mon Sep 17 00:00:00 2001 From: munja Date: Tue, 8 Mar 2022 19:40:22 +0000 Subject: [PATCH 3/4] fix: quoting mf_getuser in case of commas. Fixes #189 --- base/mf_getuser.sas | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/base/mf_getuser.sas b/base/mf_getuser.sas index b3ae413..338950c 100755 --- a/base/mf_getuser.sas +++ b/base/mf_getuser.sas @@ -33,7 +33,8 @@ %else %if %symexist(&metavar) %then %do; %if %length(&&&metavar)=0 %then %let user=&sysuserid; /* sometimes SAS will add @domain extension - remove for consistency */ - %else %let user=%scan(&&&metavar,1,@); + /* but be sure to quote in case of usernames with commas */ + %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); %end; %else %let user=&sysuserid; From c0924af06bdfb4451b7acd033d0151f87e937136 Mon Sep 17 00:00:00 2001 From: munja Date: Tue, 8 Mar 2022 19:50:01 +0000 Subject: [PATCH 4/4] fix: correcting test for mp_loadformat --- tests/crossplatform/mp_loadformat.test.sas | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/crossplatform/mp_loadformat.test.sas b/tests/crossplatform/mp_loadformat.test.sas index cf75f9c..68078d3 100644 --- a/tests/crossplatform/mp_loadformat.test.sas +++ b/tests/crossplatform/mp_loadformat.test.sas @@ -78,7 +78,7 @@ run; outds=work.test_results ) %mp_assert( - iftrue=(%mf_nobs(perm.audit)=100), - desc=Test 1 - mod obs, + iftrue=(%mf_nobs(perm.audit)>7329), + desc=Test 1 - audit table updated, outds=work.test_results -) \ No newline at end of file +)