From e797b3a7941f17b93a66a9ab7b4652827d6df5a4 Mon Sep 17 00:00:00 2001 From: Stuart Wheater Date: Mon, 5 Jan 2026 10:27:09 +0000 Subject: [PATCH 1/7] Update perf profile --- .../perf_files/default_perf_profile.csv | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/testthat/perf_files/default_perf_profile.csv b/tests/testthat/perf_files/default_perf_profile.csv index ca8a229c..58614204 100644 --- a/tests/testthat/perf_files/default_perf_profile.csv +++ b/tests/testthat/perf_files/default_perf_profile.csv @@ -1,14 +1,14 @@ "refer_name","rate","lower_tolerance","upper_tolerance" -"conndisconn::perf::simple0","0.1661","0.5","2" -"ds.abs::perf::0","6.247","0.5","2" -"ds.asInteger::perf:0","5.691","0.5","2" -"ds.asList::perf:0","12.50","0.5","2" -"ds.asNumeric::perf:0","5.723","0.5","2" -"ds.assign::perf::0","10.52","0.5","2" -"ds.class::perf::combine:0","13.73","0.5","2" -"ds.colnames::perf:0","25.64","0.5","2" -"ds.exists::perf::combine:0","25.73","0.5","2" -"ds.length::perf::combine:0","25.44","0.5","2" -"ds.mean::perf::combine:0","25.70","0.5","2" -"ds.mean::perf::split:0","25.72","0.5","2" -"void::perf::void::0","53016.0","0.5","2" +"conndisconn::perf::simple0","0.2725","0.5","2" +"ds.abs::perf::0","2.677","0.5","2" +"ds.asInteger::perf:0","2.294","0.5","2" +"ds.asList::perf:0","4.587","0.5","2" +"ds.asNumeric::perf:0","2.185","0.5","2" +"ds.assign::perf::0","5.490","0.5","2" +"ds.class::perf::combine:0","4.760","0.5","2" +"ds.colnames::perf:0","9.079","0.5","2" +"ds.exists::perf::combine:0","11.09","0.5","2" +"ds.length::perf::combine:0","9.479","0.5","2" +"ds.mean::perf::combine:0","9.650","0.5","2" +"ds.mean::perf::split:0","11.26","0.5","2" +"void::perf::void::0","46250.0","0.5","2" From 3d067a2a5c1d2dbfe22f84c760e751910fa0570d Mon Sep 17 00:00:00 2001 From: Stuart Wheater Date: Tue, 6 Jan 2026 11:39:19 +0000 Subject: [PATCH 2/7] Reworking of performance profiles --- armadillo_azure-pipelines.yml | 1 + azure-pipelines.yml | 1 + opal_azure-pipelines.yml | 1 + ...armadillo_azure-pipeline_perf-profile.csv} | 0 ...armadillo_hp-laptop-quay_perf-profile.csv} | 0 ...=> dslite_hp-laptop-quay_perf-profile.csv} | 0 ...v => opal_azure-pipeline_perf-profile.csv} | 0 ...v => opal_hp-laptop-quay_perf-profile.csv} | 0 ..._profile.csv => template_perf-profile.csv} | 0 ...e.csv => unknown_default_perf-profile.csv} | 0 tests/testthat/perf_tests/perf_rate.R | 31 ++++++++++++++++--- 11 files changed, 30 insertions(+), 4 deletions(-) rename tests/testthat/perf_files/{armadillo_azure-pipeline.csv => armadillo_azure-pipeline_perf-profile.csv} (100%) rename tests/testthat/perf_files/{armadillo_hp-laptop_quay.csv => armadillo_hp-laptop-quay_perf-profile.csv} (100%) rename tests/testthat/perf_files/{dslite_hp-laptop_quay.csv => dslite_hp-laptop-quay_perf-profile.csv} (100%) rename tests/testthat/perf_files/{default_perf_profile.csv => opal_azure-pipeline_perf-profile.csv} (100%) rename tests/testthat/perf_files/{opal_hp-laptop_quay.csv => opal_hp-laptop-quay_perf-profile.csv} (100%) rename tests/testthat/perf_files/{template_perf_profile.csv => template_perf-profile.csv} (100%) rename tests/testthat/perf_files/{opal_azure-pipeline.csv => unknown_default_perf-profile.csv} (100%) diff --git a/armadillo_azure-pipelines.yml b/armadillo_azure-pipelines.yml index 4ff1f497..90035e33 100644 --- a/armadillo_azure-pipelines.yml +++ b/armadillo_azure-pipelines.yml @@ -274,6 +274,7 @@ jobs: # # "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-" # testthat::test_package("$(projectName)", filter = "_-|datachk-|smk-|arg-|disc-|perf-|smk_expt-|expt-|math-", reporter = multi_rep, stop_on_failure = FALSE) + export PERF_PROFILE="azure-pipeline" sudo R -q -e ' library(covr); dsbase.res <- covr::package_coverage( diff --git a/azure-pipelines.yml b/azure-pipelines.yml index db3d7a18..ef340fd1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -253,6 +253,7 @@ jobs: # # "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-" # testthat::test_package("$(projectName)", filter = "_-|datachk-|smk-|arg-|disc-|perf-|smk_expt-|expt-|math-", reporter = multi_rep, stop_on_failure = FALSE) + export PERF_PROFILE="azure-pipeline" sudo R -q -e ' library(covr); dsbase.res <- covr::package_coverage( diff --git a/opal_azure-pipelines.yml b/opal_azure-pipelines.yml index 6122fb03..d276f76e 100644 --- a/opal_azure-pipelines.yml +++ b/opal_azure-pipelines.yml @@ -272,6 +272,7 @@ jobs: # # "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-" # testthat::test_package("$(projectName)", filter = "_-|datachk-|smk-|arg-|disc-|perf-|smk_expt-|expt-|math-", reporter = multi_rep, stop_on_failure = FALSE) + export PERF_PROFILE="azure-pipeline" sudo R -q -e ' library(covr); dsbase.res <- covr::package_coverage( diff --git a/tests/testthat/perf_files/armadillo_azure-pipeline.csv b/tests/testthat/perf_files/armadillo_azure-pipeline_perf-profile.csv similarity index 100% rename from tests/testthat/perf_files/armadillo_azure-pipeline.csv rename to tests/testthat/perf_files/armadillo_azure-pipeline_perf-profile.csv diff --git a/tests/testthat/perf_files/armadillo_hp-laptop_quay.csv b/tests/testthat/perf_files/armadillo_hp-laptop-quay_perf-profile.csv similarity index 100% rename from tests/testthat/perf_files/armadillo_hp-laptop_quay.csv rename to tests/testthat/perf_files/armadillo_hp-laptop-quay_perf-profile.csv diff --git a/tests/testthat/perf_files/dslite_hp-laptop_quay.csv b/tests/testthat/perf_files/dslite_hp-laptop-quay_perf-profile.csv similarity index 100% rename from tests/testthat/perf_files/dslite_hp-laptop_quay.csv rename to tests/testthat/perf_files/dslite_hp-laptop-quay_perf-profile.csv diff --git a/tests/testthat/perf_files/default_perf_profile.csv b/tests/testthat/perf_files/opal_azure-pipeline_perf-profile.csv similarity index 100% rename from tests/testthat/perf_files/default_perf_profile.csv rename to tests/testthat/perf_files/opal_azure-pipeline_perf-profile.csv diff --git a/tests/testthat/perf_files/opal_hp-laptop_quay.csv b/tests/testthat/perf_files/opal_hp-laptop-quay_perf-profile.csv similarity index 100% rename from tests/testthat/perf_files/opal_hp-laptop_quay.csv rename to tests/testthat/perf_files/opal_hp-laptop-quay_perf-profile.csv diff --git a/tests/testthat/perf_files/template_perf_profile.csv b/tests/testthat/perf_files/template_perf-profile.csv similarity index 100% rename from tests/testthat/perf_files/template_perf_profile.csv rename to tests/testthat/perf_files/template_perf-profile.csv diff --git a/tests/testthat/perf_files/opal_azure-pipeline.csv b/tests/testthat/perf_files/unknown_default_perf-profile.csv similarity index 100% rename from tests/testthat/perf_files/opal_azure-pipeline.csv rename to tests/testthat/perf_files/unknown_default_perf-profile.csv diff --git a/tests/testthat/perf_tests/perf_rate.R b/tests/testthat/perf_tests/perf_rate.R index 64b638db..1b29acf8 100644 --- a/tests/testthat/perf_tests/perf_rate.R +++ b/tests/testthat/perf_tests/perf_rate.R @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------- -# Copyright (c) 2024-2025 Arjuna Technologies, Newcastle upon Tyne. All rights reserved. +# Copyright (c) 2024-2026 Arjuna Technologies, Newcastle upon Tyne. All rights reserved. # # This program and the accompanying materials # are made available under the terms of the GNU Public License v3.0. @@ -8,13 +8,36 @@ # along with this program. If not, see . #------------------------------------------------------------------------------- -.perf.reference.filename <- 'perf_files/default_perf_profile.csv' -.perf.reference.save.filename <- NULL +.perf.reference.filename.base.prefix <- 'perf_files/' +.perf.reference.filename.base.postfix <- '_perf-profile.csv' +.perf.reference.save.filename <- NULL .perf.reference <- NULL .load.pref <- function() { - .perf.reference <<- read.csv(.perf.reference.filename, header = TRUE, sep = ",") + if (ds.test_env$driver == "OpalDriver") + perf.reference.filename.driver.infix <- "opal" + else if (ds.test_env$driver == "ArmadilloDriver") + perf.reference.filename.driver.infix <- "armadillo" + else if (ds.test_env$driver == "DSLiteDriver") + perf.reference.filename.driver.infix <- "dslite" + else + { + perf.reference.filename.infix <- "unknown" + warning("Unknown performance profile driver, using 'unknown'") + } + + perf.profile = base::Sys.getenv("PERF_PROFILE") + if (nchar(perf.profile) > 0) + perf.reference.filename.platform.infix <- base::tolower(perf.profile) + else + { + perf.reference.filename.platform.infix <- "default" + warning("Unknown performance profile platform, using 'default'") + } + + perf.reference.filename <- paste(.perf.reference.filename.base.prefix, perf.reference.filename.driver.infix, '_', perf.reference.filename.platform.infix, .perf.reference.filename.base.postfix, sep = "") + .perf.reference <<- read.csv(perf.reference.filename, header = TRUE, sep = ",") } perf.reference.save <- function(perf.ref.name, rate, tolerance.lower, tolerance.upper) { From aaac420639728ce2e4c87d23cbe45a52ca112570 Mon Sep 17 00:00:00 2001 From: Stuart Wheater Date: Tue, 6 Jan 2026 14:27:13 +0000 Subject: [PATCH 3/7] Rework setting of variable --- azure-pipelines.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ef340fd1..80854127 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,6 +32,7 @@ variables: branchName: $(Build.SourceBranchName) test_filter: '*' _r_check_system_clock_: 0 + PERF_PROFILE: 'azure-pipeline' ######################################################################################### @@ -253,7 +254,7 @@ jobs: # # "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-" # testthat::test_package("$(projectName)", filter = "_-|datachk-|smk-|arg-|disc-|perf-|smk_expt-|expt-|math-", reporter = multi_rep, stop_on_failure = FALSE) - export PERF_PROFILE="azure-pipeline" + sudo R -q -e ' library(covr); dsbase.res <- covr::package_coverage( From 09bca9bd00bec53d92a7c9a5aa6c735edfff59c1 Mon Sep 17 00:00:00 2001 From: Stuart Wheater Date: Tue, 6 Jan 2026 21:11:35 +0000 Subject: [PATCH 4/7] Added 'opal' and 'default' --- .../perf_files/opal_default_perf-profile.csv | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 tests/testthat/perf_files/opal_default_perf-profile.csv diff --git a/tests/testthat/perf_files/opal_default_perf-profile.csv b/tests/testthat/perf_files/opal_default_perf-profile.csv new file mode 100644 index 00000000..58614204 --- /dev/null +++ b/tests/testthat/perf_files/opal_default_perf-profile.csv @@ -0,0 +1,14 @@ +"refer_name","rate","lower_tolerance","upper_tolerance" +"conndisconn::perf::simple0","0.2725","0.5","2" +"ds.abs::perf::0","2.677","0.5","2" +"ds.asInteger::perf:0","2.294","0.5","2" +"ds.asList::perf:0","4.587","0.5","2" +"ds.asNumeric::perf:0","2.185","0.5","2" +"ds.assign::perf::0","5.490","0.5","2" +"ds.class::perf::combine:0","4.760","0.5","2" +"ds.colnames::perf:0","9.079","0.5","2" +"ds.exists::perf::combine:0","11.09","0.5","2" +"ds.length::perf::combine:0","9.479","0.5","2" +"ds.mean::perf::combine:0","9.650","0.5","2" +"ds.mean::perf::split:0","11.26","0.5","2" +"void::perf::void::0","46250.0","0.5","2" From 0a3a83eb238408fc6273d1dbc40551dfd6113767 Mon Sep 17 00:00:00 2001 From: Stuart Wheater Date: Wed, 7 Jan 2026 09:15:36 +0000 Subject: [PATCH 5/7] Fixed Perf change typo --- armadillo_azure-pipelines.yml | 3 ++- opal_azure-pipelines.yml | 3 ++- tests/testthat/perf_tests/perf_rate.R | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/armadillo_azure-pipelines.yml b/armadillo_azure-pipelines.yml index 90035e33..57ef048b 100644 --- a/armadillo_azure-pipelines.yml +++ b/armadillo_azure-pipelines.yml @@ -34,6 +34,7 @@ variables: branchName: $(Build.SourceBranchName) test_filter: '*' _r_check_system_clock_: 0 + PERF_PROFILE: 'azure-pipeline' ######################################################################################### @@ -274,7 +275,7 @@ jobs: # # "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-" # testthat::test_package("$(projectName)", filter = "_-|datachk-|smk-|arg-|disc-|perf-|smk_expt-|expt-|math-", reporter = multi_rep, stop_on_failure = FALSE) - export PERF_PROFILE="azure-pipeline" + sudo R -q -e ' library(covr); dsbase.res <- covr::package_coverage( diff --git a/opal_azure-pipelines.yml b/opal_azure-pipelines.yml index d276f76e..e0d32f69 100644 --- a/opal_azure-pipelines.yml +++ b/opal_azure-pipelines.yml @@ -34,6 +34,7 @@ variables: branchName: $(Build.SourceBranchName) test_filter: '*' _r_check_system_clock_: 0 + PERF_PROFILE: 'azure-pipeline' ######################################################################################### @@ -272,7 +273,7 @@ jobs: # # "_-|arg-|smk-|datachk-|disc-|math-|expt-|expt_smk-" # testthat::test_package("$(projectName)", filter = "_-|datachk-|smk-|arg-|disc-|perf-|smk_expt-|expt-|math-", reporter = multi_rep, stop_on_failure = FALSE) - export PERF_PROFILE="azure-pipeline" + sudo R -q -e ' library(covr); dsbase.res <- covr::package_coverage( diff --git a/tests/testthat/perf_tests/perf_rate.R b/tests/testthat/perf_tests/perf_rate.R index 1b29acf8..a7f85348 100644 --- a/tests/testthat/perf_tests/perf_rate.R +++ b/tests/testthat/perf_tests/perf_rate.R @@ -27,7 +27,7 @@ warning("Unknown performance profile driver, using 'unknown'") } - perf.profile = base::Sys.getenv("PERF_PROFILE") + perf.profile <- base::Sys.getenv("PERF_PROFILE") if (nchar(perf.profile) > 0) perf.reference.filename.platform.infix <- base::tolower(perf.profile) else From 39a98f11cc3d55a5db2822d1c6f8281ea51a2274 Mon Sep 17 00:00:00 2001 From: Stuart Wheater Date: Wed, 7 Jan 2026 12:48:55 +0000 Subject: [PATCH 6/7] Fixed 'o' to 'opal' typo --- azure-pipelines.yml | 2 +- opal_azure-pipelines.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 80854127..f60b3e02 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -344,7 +344,7 @@ jobs: # If previous steps have failed then don't run - bash: | - R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(o)" + R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)" R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.install_github_package(opal, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)" diff --git a/opal_azure-pipelines.yml b/opal_azure-pipelines.yml index e0d32f69..917c223a 100644 --- a/opal_azure-pipelines.yml +++ b/opal_azure-pipelines.yml @@ -363,7 +363,7 @@ jobs: # If previous steps have failed then don't run - bash: | - R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(o)" + R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)" R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.install_github_package(opal, 'dsDanger', username = 'datashield', ref = '6.3.4'); opal.logout(opal)" From a33e978e35f601d886f72ecbb45816c414580158 Mon Sep 17 00:00:00 2001 From: Stuart Wheater Date: Wed, 7 Jan 2026 13:18:00 +0000 Subject: [PATCH 7/7] Fixed typo --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f60b3e02..bc8851fb 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -215,7 +215,7 @@ jobs: # Install dsBase. # If previous steps have failed then don't run. - bash: | - R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(o)" + R -q -e "library(opalr); opal <- opal.login(username = 'administrator', password = 'datashield_test&', url = 'https://localhost:8443', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); opal.put(opal, 'system', 'conf', 'general', '_rPackage'); opal.logout(opal)" R -q -e "library(opalr); opal <- opal.login('administrator','datashield_test&', url='https://localhost:8443/', opts = list(ssl_verifyhost=0, ssl_verifypeer=0)); dsadmin.install_github_package(opal, 'dsBase', username = 'datashield', ref = 'v6.3.5-dev'); opal.logout(opal)"