51 lines
2.2 KiB
R
51 lines
2.2 KiB
R
|
|
## Copyright (C) 2019 - 2024 Dirk Eddelbuettel
|
|
##
|
|
## This file is part of Rcpp.
|
|
##
|
|
## Rcpp is free software: you can redistribute it and/or modify it
|
|
## under the terms of the GNU General Public License as published by
|
|
## the Free Software Foundation, either version 2 of the License, or
|
|
## (at your option) any later version.
|
|
##
|
|
## Rcpp is distributed in the hope that it will be useful, but
|
|
## WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
## GNU General Public License for more details.
|
|
##
|
|
## You should have received a copy of the GNU General Public License
|
|
## along with Rcpp. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
if (Sys.getenv("RunAllRcppTests") != "yes") exit_file("Set 'RunAllRcppTests' to 'yes' to run.")
|
|
|
|
Rcpp::sourceCpp("cpp/rcppversion.cpp")
|
|
|
|
## we take packageVersion, make it a character variable, split it by dots and turn it to ints
|
|
## note that v could now be a three or four element vector depending on what the package version is
|
|
pv <- packageVersion("Rcpp")
|
|
pvstr <- as.character(pv)
|
|
v <- as.integer(unlist(strsplit(pvstr, "\\.")))
|
|
|
|
## construct a release string from the first three elements, ie "1.0.3" from 1.0.3.1
|
|
relstr <- as.character(as.package_version(paste(v[1:3], collapse=".")))
|
|
|
|
## call C++ function returning list of six values, three each for 'release' and 'dev' version
|
|
res <- checkVersion(v[1:min(4, length(v))])
|
|
|
|
|
|
## basic check: is the #defined version equal to the computed version (issue #1014)
|
|
expect_equal(res$cur_ver, res$def_ver, info="current computed version equal defined version")
|
|
|
|
## basic check: is the #defined string version equal to the computed string version (adjusting for rel)
|
|
expect_equal(relstr, res$def_str, info="current computed version equal defined dev string")
|
|
|
|
## additional checks if we are a dev version
|
|
if (length(v) >= 4) {
|
|
expect_equal(res$cur_dev_ver, res$def_dev_ver, info="current computed dev version greater equal defined dev version")
|
|
}
|
|
|
|
if (length(v) <= 4) {
|
|
## basic check: is #defined string version equal to computed string
|
|
expect_true(grepl(pvstr, res$def_dev_str), info="current computed version equal defined dev string")
|
|
}
|