diff options
57 files changed, 831 insertions, 833 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ca10017..f358b22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.15) -project(OMC C) +project(STASIS C) include(GNUInstallDirs) set(nix_cflags -Wall -Wextra -fPIC) @@ -35,5 +35,5 @@ endif() set(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/config.h @ONLY) -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/omc.ini DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/omc) -install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/mission DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/omc) +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/stasis.ini DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/stasis) +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/mission DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/stasis) @@ -1,6 +1,6 @@ -[](https://github.com/spacetelescope/ohmycal/actions/workflows/cmake-multi-platform.yml) [](https://oh-my-cal.readthedocs.io/en/latest/?badge=latest) +[](https://github.com/spacetelescope/stasis/actions/workflows/cmake-multi-platform.yml) [](https://stasis-docs.readthedocs.io/en/latest/?badge=latest) -OMC consolidate the steps required to build, test, and deploy calibration pipelines and other software suites maintained by engineers at the Space Telescope Science Institute. +STASIS consolidates the steps required to build, test, and deploy calibration pipelines and other software suites maintained by engineers at the Space Telescope Science Institute. # Requirements @@ -15,8 +15,8 @@ OMC consolidate the steps required to build, test, and deploy calibration pipeli Download the source code ```shell -git clone https://github.com/jhunkeler/ohmycal.git -cd ohmycal +git clone https://github.com/spacetelescope/stasis.git +cd stasis ``` Create and enter the build directory @@ -29,26 +29,26 @@ cd build Run cmake ```shell -cmake .. -DCMAKE_INSTALL_PREFIX="$HOME/programs/ohmycal" +cmake .. -DCMAKE_INSTALL_PREFIX="$HOME/programs/stasis" ``` -Compile and install ohmycal +Compile and install stasis ```shell make make install -export PATH="$HOME/programs/ohmycal/bin:$PATH" +export PATH="$HOME/programs/stasis/bin:$PATH" ``` # Quickstart ## Step 1: Create a mission -Missions definitions live in OMC's `etc/mission` directory. Let's create a new one specifically geared toward generic data analysis tools. You may override the path to the `etc` directory by setting the `OMC_SYSCONFDIR` environment variable to different location. +Missions definitions live in STASIS's `etc/mission` directory. Let's create a new one specifically geared toward generic data analysis tools. You may override the path to the `etc` directory by setting the `STASIS_SYSCONFDIR` environment variable to different location. ```shell -mkdir $HOME/programs/ohmycal/etc/missions/mymission -touch $HOME/programs/ohmycal/etc/missions/mymission/mymission.ini +mkdir $HOME/programs/stasis/etc/missions/mymission +touch $HOME/programs/stasis/etc/missions/mymission/mymission.ini ``` Now populate the new data analysis mission configuration. Refer to the [release formatters](#release-formatters) section to see a list of what each `%` formatter does. @@ -65,7 +65,7 @@ build_number_fmt = %v.%r ; e.g. 1.2.3.1 ``` -Text files containing OMC template strings can be stored at the same level as the mission configuration, and rendered to anywhere inside the output directory. This will can you time if you plan to release for multiple platforms and architectures. +Text files containing STASIS template strings can be stored at the same level as the mission configuration, and rendered to anywhere inside the output directory. This will can you time if you plan to release for multiple platforms and architectures. ```ini [template:readme.md.in] @@ -79,7 +79,7 @@ destination = {{ storage.build_docker_dir }}/Dockerfile ## Step 2: Create a delivery configuration -OMC's configuration parser does not distinguish input files by extension, so `mydelivery.ini`, `mydelivery.cfg`, `mydelivery.txt`, and `abc123.zyx987` are all perfectly valid file names. +STASIS's configuration parser does not distinguish input files by extension, so `mydelivery.ini`, `mydelivery.cfg`, `mydelivery.txt`, and `abc123.zyx987` are all perfectly valid file names. All deliveries require a `[meta]` section. Here global metadata such as the delivery's `name`, `version`, and any programs/dependencies that make up the deliverable. @@ -92,15 +92,15 @@ rc = 1 python = 3.12 ``` -The `[conda]` section instructs OMC how to obtain the conda installer of your choice, and defines the packages to be installed into the delivery's release environment. +The `[conda]` section instructs STASIS how to obtain the conda installer of your choice, and defines the packages to be installed into the delivery's release environment. ```ini [conda] ; e.g. Download Miniforge3-23.11.0-0 for the current system platform and architecture installer_name = Miniforge3 installer_version = 23.11.0-0 -installer_platform = {{env:OMC_CONDA_PLATFORM}} -installer_arch = {{env:OMC_CONDA_ARCH}} +installer_platform = {{env:STASIS_CONDA_PLATFORM}} +installer_arch = {{env:STASIS_CONDA_ARCH}} installer_baseurl = https://github.com/conda-forge/miniforge/releases/download/{{conda.installer_version}} conda_packages = @@ -133,10 +133,10 @@ script = tests/ ``` -## Step 3: Run OMC +## Step 3: Run STASIS ```shell -omc mydelivery.ini +stasis mydelivery.ini ``` # Configuration @@ -146,17 +146,17 @@ omc mydelivery.ini | Name | Purpose | |------------------------------|-------------------------------------------------------| | TMPDIR | Change default path to store temporary data | -| OMC_ROOT | Change default path to write OMC's data | -| OMC_SYSCONFDIR | Change default path to search for configuration files | -| OMC_JF_ARTIFACTORY_URL | Artifactory service URL (ending in `/artifactory`) | -| OMC_JF_ACCESS_TOKEN | Artifactory Access Token | -| OMC_JF_USER | Artifactory username | -| OMC_JF_PASSWORD | Artifactory password | -| OMC_JF_SSH_KEY_PATH | Path to SSH public key file | -| OMC_JF_SSH_PASSPHRASE | Password associated with SSH public key file | -| OMC_JF_CLIENT_CERT_CERT_PATH | Path to OpenSSL cert files | -| OMC_JF_CLIENT_CERT_KEY_PATH | OpenSSL key file (in cert path) | -| OMC_JF_REPO | Artifactory "generic" repository to write to | +| STASIS_ROOT | Change default path to write STASIS's data | +| STASIS_SYSCONFDIR | Change default path to search for configuration files | +| STASIS_JF_ARTIFACTORY_URL | Artifactory service URL (ending in `/artifactory`) | +| STASIS_JF_ACCESS_TOKEN | Artifactory Access Token | +| STASIS_JF_USER | Artifactory username | +| STASIS_JF_PASSWORD | Artifactory password | +| STASIS_JF_SSH_KEY_PATH | Path to SSH public key file | +| STASIS_JF_SSH_PASSPHRASE | Password associated with SSH public key file | +| STASIS_JF_CLIENT_CERT_CERT_PATH | Path to OpenSSL cert files | +| STASIS_JF_CLIENT_CERT_KEY_PATH | OpenSSL key file (in cert path) | +| STASIS_JF_REPO | Artifactory "generic" repository to write to | # Variable expansion @@ -236,7 +236,7 @@ All configuration section names and keys are _case-sensitive_. ### runtime -Environment variables exported are _global_ to all programs executed by ohmycal. There is no limit to the number of environment variables that can be set. +Environment variables exported are _global_ to all programs executed by stasis. There is no limit to the number of environment variables that can be set. | Key | Type | Purpose | Required | |------------------------|--------|------------------------------------------------------------|----------| @@ -245,7 +245,7 @@ Environment variables exported are _global_ to all programs executed by ohmycal. ### test:_name_ -Sections starting with `test:` will be used during the testing phase of the ohmycal pipeline. Where the value of `name` following the colon is an arbitrary value, and only used for reporting which test-run is executing. Section names must be unique. +Sections starting with `test:` will be used during the testing phase of the stasis pipeline. Where the value of `name` following the colon is an arbitrary value, and only used for reporting which test-run is executing. Section names must be unique. | Key | Type | Purpose | Required | |--------------|--------|-------------------------------------------------------|----------| @@ -277,10 +277,10 @@ The `deploy:docker` section controls how Docker images are created, when a `Dock # Mission files -Mission rules are defined in the `OMC_SYCONFDIR/mission` directory. Each mission configuration file shares the same name as the directory. To create a new mission, `example`, the directory structure will be as follows: +Mission rules are defined in the `STASIS_SYCONFDIR/mission` directory. Each mission configuration file shares the same name as the directory. To create a new mission, `example`, the directory structure will be as follows: ```text -OMC_SYSCONFDIR/ +STASIS_SYSCONFDIR/ mission/ example/ example.ini diff --git a/docs/Doxyfile b/docs/Doxyfile index cacb2f9..92fcec2 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -4,7 +4,7 @@ # Project related configuration options #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 -PROJECT_NAME = "Oh My Cal" +PROJECT_NAME = "STASIS" PROJECT_NUMBER = PROJECT_BRIEF = "A pipeline delivery generator" PROJECT_LOGO = logo.png diff --git a/docs/conf.py b/docs/conf.py index 6610bbd..93d31a8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,7 +32,7 @@ subprocess.run("doxygen", shell=True) # -- Project information ----------------------------------------------------- -project = 'Oh My Cal' +project = 'STASIS' copyright = '2023-2024, Space Telescope Science Institute' author = 'Joseph Hunkeler' diff --git a/docs/environment.yaml b/docs/environment.yaml index fed35ba..fe5f8cd 100644 --- a/docs/environment.yaml +++ b/docs/environment.yaml @@ -1,7 +1,6 @@ name: RTD channels: - conda-forge - - defaults dependencies: - python=3.11 - doxygen diff --git a/examples/template/example.ini b/examples/template/example.ini index e84cf67..4a4c579 100644 --- a/examples/template/example.ini +++ b/examples/template/example.ini @@ -28,8 +28,8 @@ python = [conda] installer_name = Miniforge3 installer_version = 23.3.1-1 -installer_platform = ${OMC_CONDA_PLATFORM} -installer_arch = ${OMC_CONDA_ARCH} +installer_platform = ${STASIS_CONDA_PLATFORM} +installer_arch = ${STASIS_CONDA_ARCH} installer_baseurl = https://github.com/conda-forge/miniforge/releases/latest/download ; (list) Conda packages to install diff --git a/include/artifactory.h b/include/artifactory.h index 0883eef..6880d17 100644 --- a/include/artifactory.h +++ b/include/artifactory.h @@ -1,10 +1,10 @@ //! @file artifactory.h -#ifndef OMC_ARTIFACTORY_H -#define OMC_ARTIFACTORY_H +#ifndef STASIS_ARTIFACTORY_H +#define STASIS_ARTIFACTORY_H #include <stdio.h> #include <stdlib.h> -#include "omc.h" +#include "core.h" //! JFrog Artifactory Authentication struct struct JFRT_Auth { @@ -276,13 +276,13 @@ int jfrog_cli_rt_build_collect_env(struct JFRT_Auth *auth, char *build_name, cha int jfrog_cli_rt_build_publish(struct JFRT_Auth *auth, char *build_name, char *build_number); /** - * Configure JFrog CLI authentication according to OMC specs + * Configure JFrog CLI authentication according to STASIS specs * - * This function will use the OMC_JF_* environment variables to configure the authentication - * context. With this in mind, if an OMC_JF_* environment variable is not defined, the original value of + * This function will use the STASIS_JF_* environment variables to configure the authentication + * context. With this in mind, if an STASIS_JF_* environment variable is not defined, the original value of * the structure member will be used instead. * - * Use OMC_JF_* variables to configure context + * Use STASIS_JF_* variables to configure context * * ```c * struct JFRT_Auth auth_ctx; @@ -299,7 +299,7 @@ int jfrog_cli_rt_build_publish(struct JFRT_Auth *auth, char *build_name, char *b * jfrt_auth_init(&auth_ctx); * ``` * - * Use your own input without OMC's help. Purely an illustrative example. + * Use your own input without STASIS's help. Purely an illustrative example. * * ```c * struct JFRT_Auth auth_ctx; @@ -320,4 +320,4 @@ int jfrt_auth_init(struct JFRT_Auth *auth_ctx); */ void jfrt_upload_init(struct JFRT_Upload *ctx); -#endif //OMC_ARTIFACTORY_H
\ No newline at end of file +#endif //STASIS_ARTIFACTORY_H
\ No newline at end of file diff --git a/include/conda.h b/include/conda.h index 9cbbf9c..086a842 100644 --- a/include/conda.h +++ b/include/conda.h @@ -1,10 +1,10 @@ //! @file conda.h -#ifndef OMC_CONDA_H -#define OMC_CONDA_H +#ifndef STASIS_CONDA_H +#define STASIS_CONDA_H #include <stdio.h> #include <string.h> -#include "omc.h" +#include "core.h" #define CONDA_INSTALL_PREFIX "conda" @@ -167,4 +167,4 @@ int conda_env_export(char *name, char *output_dir, char *output_filename); * @return exit code from "conda" */ int conda_index(const char *path); -#endif //OMC_CONDA_H +#endif //STASIS_CONDA_H diff --git a/include/config.h.in b/include/config.h.in index fe6beb2..0df955d 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -1,28 +1,28 @@ -#ifndef OMC_CONFIG_H -#define OMC_CONFIG_H +#ifndef STASIS_CONFIG_H +#define STASIS_CONFIG_H -#define OMC_SYSCONFDIR "@SYSCONFDIR@/omc" +#define STASIS_SYSCONFDIR "@SYSCONFDIR@/stasis" #if defined(_WIN32) || defined(_WIN64) || defined(__CYGWIN__) -#define OMC_OS_WINDOWS +#define STASIS_OS_WINDOWS #elif defined(__linux__) -#define OMC_OS_LINUX +#define STASIS_OS_LINUX #include "os_linux.h" #elif defined(unix) || defined(__unix__) || defined(__unix) -#define OMC_OS_UNIX +#define STASIS_OS_UNIX #elif defined(__APPLE__) -#define OMC_OS_DARWIN +#define STASIS_OS_DARWIN #include "os_darwin.h" #else -#define OMC_OS_UNKNOWN +#define STASIS_OS_UNKNOWN #error Operating system unknown/unsupported #endif // OS detection -#endif // OMC_CONFIG_H +#endif // STASIS_CONFIG_H diff --git a/include/copy.h b/include/copy.h index 5a53d7d..609a6cf 100644 --- a/include/copy.h +++ b/include/copy.h @@ -1,5 +1,5 @@ //! @file copy.h -#ifndef OMC_COPY_H +#ifndef STASIS_COPY_H #include <stdio.h> #include <stdlib.h> @@ -8,7 +8,7 @@ #include <errno.h> #include <sys/stat.h> #include <unistd.h> -#include "omc.h" +#include "core.h" #define CT_OWNER 1 << 1 #define CT_PERM 1 << 2 @@ -58,4 +58,4 @@ int mkdirs(const char *_path, mode_t mode); */ int copy2(const char *src, const char *dest, unsigned op); -#endif // OMC_COPY_H
\ No newline at end of file +#endif // STASIS_COPY_H
\ No newline at end of file diff --git a/include/omc.h b/include/core.h index e728207..1a7ddea 100644 --- a/include/omc.h +++ b/include/core.h @@ -1,6 +1,6 @@ -//! @file omc.h -#ifndef OMC_OMC_H -#define OMC_OMC_H +//! @file stasis.h +#ifndef STASIS_CORE_H +#define STASIS_CORE_H #include <stdio.h> #include <stdlib.h> @@ -14,10 +14,10 @@ fprintf(stderr, "%s:%s:%d:%s - ", path_basename(__FILE__), __FUNCTION__, __LINE__, strerror(errno) ? "info" : strerror(errno)); \ fprintf(stderr, MSG LINE_SEP, __VA_ARGS__); \ } while (0) -#define OMC_BUFSIZ 8192 -#define OMC_NAME_MAX 255 -#define OMC_DIRSTACK_MAX 1024 -#define OMC_TIME_STR_MAX 128 +#define STASIS_BUFSIZ 8192 +#define STASIS_NAME_MAX 255 +#define STASIS_DIRSTACK_MAX 1024 +#define STASIS_TIME_STR_MAX 128 #define HTTP_ERROR(X) X >= 400 #include "config.h" @@ -29,7 +29,7 @@ #include "environment.h" #include "artifactory.h" #include "docker.h" -#include "deliverable.h" +#include "delivery.h" #include "str.h" #include "strlist.h" #include "system.h" @@ -52,12 +52,12 @@ #define COE_CHECK_ABORT(COND, MSG) \ do {\ if (!globals.continue_on_error && COND) { \ - msg(OMC_MSG_ERROR, MSG ": Aborting execution (--continue-on-error/-C is not enabled)\n"); \ + msg(STASIS_MSG_ERROR, MSG ": Aborting execution (--continue-on-error/-C is not enabled)\n"); \ exit(1); \ } \ } while (0) -struct OMC_GLOBAL { +struct STASIS_GLOBAL { bool verbose; //!< Enable verbose output bool always_update_base_environment; //!< Update base environment immediately after activation bool continue_on_error; //!< Do not stop on test failures @@ -69,7 +69,7 @@ struct OMC_GLOBAL { struct StrList *pip_packages; //!< Pip packages to install after initial activation char *tmpdir; //!< Path to temporary storage directory char *conda_install_prefix; //!< Path to install conda - char *sysconfdir; //!< Path where OMC reads its configuration files (mission directory, etc) + char *sysconfdir; //!< Path where STASIS reads its configuration files (mission directory, etc) struct { char *tox_posargs; } workaround; @@ -85,7 +85,7 @@ struct OMC_GLOBAL { char *url; } jfrog; }; -extern struct OMC_GLOBAL globals; +extern struct STASIS_GLOBAL globals; extern const char *VERSION; extern const char *AUTHOR; extern const char *BANNER; @@ -96,4 +96,4 @@ extern const char *BANNER; */ void globals_free(); -#endif //OMC_OMC_H +#endif //STASIS_CORE_H diff --git a/include/deliverable.h b/include/delivery.h index effd098..971705f 100644 --- a/include/deliverable.h +++ b/include/delivery.h @@ -1,13 +1,13 @@ -/// @file deliverable.h +/// @file delivery.h -#ifndef OMC_DELIVERABLE_H -#define OMC_DELIVERABLE_H +#ifndef STASIS_DELIVERY_H +#define STASIS_DELIVERY_H #include <string.h> #include <stdbool.h> #include <unistd.h> #include <sys/utsname.h> -#include "omc.h" +#include "core.h" #define DELIVERY_PLATFORM_MAX 4 #define DELIVERY_PLATFORM_MAXLEN 65 @@ -37,17 +37,17 @@ struct Content { * \brief A structure describing a full delivery object */ struct Delivery { - /*! \struct OMC_INI_FP + /*! \struct STASIS_INI_FP * \brief Container for INIFILE handles */ - struct OMC_INI_FP { + struct STASIS_INI_FP { struct INIFILE *delivery; struct INIFILE *cfg; struct INIFILE *mission; char *delivery_path; char *cfg_path; char *mission_path; - } _omc_ini_fp; + } _stasis_ini_fp; /*! \struct System * \brief System information @@ -110,7 +110,7 @@ struct Delivery { char *build_name; char *build_number; struct tm *time_info; ///< Delivery time structure - time_t time_now; ///< Time stamp for when OMC execution started + time_t time_now; ///< Time stamp for when STASIS execution started char *time_str_epoch; ///< String representation of Unix epoch } info; @@ -391,4 +391,4 @@ int *bootstrap_build_info(struct Delivery *ctx); int delivery_dump_metadata(struct Delivery *ctx); -#endif //OMC_DELIVERABLE_H +#endif //STASIS_DELIVERY_H diff --git a/include/docker.h b/include/docker.h index a5fdbc4..ff8a8d5 100644 --- a/include/docker.h +++ b/include/docker.h @@ -1,17 +1,17 @@ //! @file docker.h -#ifndef OMC_DOCKER_H -#define OMC_DOCKER_H +#ifndef STASIS_DOCKER_H +#define STASIS_DOCKER_H //! Flag to squelch output from docker_exec() -#define OMC_DOCKER_QUIET 1 << 1 +#define STASIS_DOCKER_QUIET 1 << 1 //! Flag for older style docker build -#define OMC_DOCKER_BUILD 1 << 1 +#define STASIS_DOCKER_BUILD 1 << 1 //! Flag for docker buildx -#define OMC_DOCKER_BUILD_X 1 << 2 +#define STASIS_DOCKER_BUILD_X 1 << 2 //! Compress "docker save"ed images with a compression program -#define OMC_DOCKER_IMAGE_COMPRESSION "zstd" +#define STASIS_DOCKER_IMAGE_COMPRESSION "zstd" struct DockerCapabilities { int podman; //!< Is "docker" really podman? @@ -42,7 +42,7 @@ int docker_capable(struct DockerCapabilities *result); /** * Execute a docker command * - * Use the `OMC_DOCKER_QUIET` flag to suppress all output from stdout and stderr. + * Use the `STASIS_DOCKER_QUIET` flag to suppress all output from stdout and stderr. * * ```c * if (docker_exec("run --rm -t ubuntu:latest /bin/bash -c 'echo Hello world'", 0)) { @@ -87,4 +87,4 @@ void docker_sanitize_tag(char *str); int docker_validate_compression_program(char *prog); -#endif //OMC_DOCKER_H +#endif //STASIS_DOCKER_H diff --git a/include/download.h b/include/download.h index 568809e..058812e 100644 --- a/include/download.h +++ b/include/download.h @@ -1,10 +1,10 @@ //! @file download.h -#ifndef OMC_DOWNLOAD_H -#define OMC_DOWNLOAD_H +#ifndef STASIS_DOWNLOAD_H +#define STASIS_DOWNLOAD_H #include <curl/curl.h> size_t download_writer(void *fp, size_t size, size_t nmemb, void *stream); long download(char *url, const char *filename, char **errmsg); -#endif //OMC_DOWNLOAD_H +#endif //STASIS_DOWNLOAD_H diff --git a/include/environment.h b/include/environment.h index 484f02c..34bc600 100644 --- a/include/environment.h +++ b/include/environment.h @@ -1,8 +1,8 @@ /** * @file environment.h */ -#ifndef OMC_ENVIRONMENT_H -#define OMC_ENVIRONMENT_H +#ifndef STASIS_ENVIRONMENT_H +#define STASIS_ENVIRONMENT_H #include <stdio.h> #include <stdlib.h> @@ -20,4 +20,4 @@ char *runtime_expand_var(RuntimeEnv *env, char *input); void runtime_export(RuntimeEnv *env, char **keys); void runtime_apply(RuntimeEnv *env); void runtime_free(RuntimeEnv *env); -#endif //OMC_ENVIRONMENT_H +#endif //STASIS_ENVIRONMENT_H diff --git a/include/ini.h b/include/ini.h index 022a066..af2639b 100644 --- a/include/ini.h +++ b/include/ini.h @@ -1,7 +1,7 @@ /// @file ini.h -#ifndef OMC_INI_H -#define OMC_INI_H +#ifndef STASIS_INI_H +#define STASIS_INI_H #include <stddef.h> #include <stdbool.h> @@ -217,4 +217,4 @@ int ini_write(struct INIFILE *ini, FILE **stream, unsigned mode); * @param ini */ void ini_free(struct INIFILE **ini); -#endif //OMC_INI_H +#endif //STASIS_INI_H diff --git a/include/junitxml.h b/include/junitxml.h index 2d94eb8..504b8e4 100644 --- a/include/junitxml.h +++ b/include/junitxml.h @@ -1,6 +1,6 @@ /// @file junitxml.h -#ifndef OMC_JUNITXML_H -#define OMC_JUNITXML_H +#ifndef STASIS_JUNITXML_H +#define STASIS_JUNITXML_H #include <libxml/xmlreader.h> #define JUNIT_RESULT_STATE_NONE 0 @@ -132,4 +132,4 @@ struct JUNIT_Testsuite *junitxml_testsuite_read(const char *filename); */ void junitxml_testsuite_free(struct JUNIT_Testsuite **testsuite); -#endif //OMC_JUNITXML_H +#endif //STASIS_JUNITXML_H diff --git a/include/os_darwin.h b/include/os_darwin.h index 390968c..e8513ff 100644 --- a/include/os_darwin.h +++ b/include/os_darwin.h @@ -1,5 +1,5 @@ -#ifndef OMC_OS_DARWIN_H -#define OMC_OS_DARWIN_H +#ifndef STASIS_OS_DARWIN_H +#define STASIS_OS_DARWIN_H #include <sys/mount.h> diff --git a/include/os_linux.h b/include/os_linux.h index 8c3aed7..d418090 100644 --- a/include/os_linux.h +++ b/include/os_linux.h @@ -1,5 +1,5 @@ -#ifndef OMC_OS_LINUX_H -#define OMC_OS_LINUX_H +#ifndef STASIS_OS_LINUX_H +#define STASIS_OS_LINUX_H #include <limits.h> diff --git a/include/recipe.h b/include/recipe.h index f1b4df1..4dea248 100644 --- a/include/recipe.h +++ b/include/recipe.h @@ -1,6 +1,6 @@ //! @file recipe.h -#ifndef OMC_RECIPE_H -#define OMC_RECIPE_H +#ifndef STASIS_RECIPE_H +#define STASIS_RECIPE_H #include "str.h" #include "utils.h" @@ -69,4 +69,4 @@ int recipe_clone(char *recipe_dir, char *url, char *gitref, char **result); */ int recipe_get_type(char *repopath); -#endif //OMC_RECIPE_H +#endif //STASIS_RECIPE_H diff --git a/include/relocation.h b/include/relocation.h index 924f00f..9a1f0f4 100644 --- a/include/relocation.h +++ b/include/relocation.h @@ -1,15 +1,15 @@ /** * @file relocation.h */ -#ifndef OMC_RELOCATION_H -#define OMC_RELOCATION_H +#ifndef STASIS_RELOCATION_H +#define STASIS_RELOCATION_H #include "config.h" #include <stdio.h> #include <stdlib.h> #include <string.h> -#if defined(OMC_OS_DARWIN) +#if defined(STASIS_OS_DARWIN) #include <limits.h> # else #include <linux/limits.h> @@ -21,4 +21,4 @@ int replace_text(char *original, const char *target, const char *replacement, unsigned flags); int file_replace_text(const char* filename, const char* target, const char* replacement, unsigned flags); -#endif //OMC_RELOCATION_H +#endif //STASIS_RELOCATION_H diff --git a/include/rules.h b/include/rules.h index 63eade7..666d331 100644 --- a/include/rules.h +++ b/include/rules.h @@ -2,10 +2,10 @@ // Created by jhunk on 12/18/23. // -#ifndef OMC_RULES_H -#define OMC_RULES_H +#ifndef STASIS_RULES_H +#define STASIS_RULES_H -#include "omc.h" +#include "core.h" -#endif //OMC_RULES_H +#endif //STASIS_RULES_H diff --git a/include/str.h b/include/str.h index 595a055..4cf221d 100644 --- a/include/str.h +++ b/include/str.h @@ -1,20 +1,20 @@ /** * @file str.h */ -#ifndef OMC_STR_H -#define OMC_STR_H +#ifndef STASIS_STR_H +#define STASIS_STR_H #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include <ctype.h> -#include "omc.h" +#include "core.h" -#define OMC_SORT_ALPHA 1 << 0 -#define OMC_SORT_NUMERIC 1 << 1 -#define OMC_SORT_LEN_ASCENDING 1 << 2 -#define OMC_SORT_LEN_DESCENDING 1 << 3 +#define STASIS_SORT_ALPHA 1 << 0 +#define STASIS_SORT_NUMERIC 1 << 1 +#define STASIS_SORT_LEN_ASCENDING 1 << 2 +#define STASIS_SORT_LEN_DESCENDING 1 << 3 /** * Determine how many times the character `ch` appears in `sptr` string @@ -115,10 +115,10 @@ char *substring_between(char *sptr, const char *delims); * Sort an array of strings * @param arr a NULL terminated array of strings * @param sort_mode - * - OMC_SORT_LEN_DESCENDING - * - OMC_SORT_LEN_ASCENDING - * - OMC_SORT_ALPHA - * - OMC_SORT_NUMERIC + * - STASIS_SORT_LEN_DESCENDING + * - STASIS_SORT_LEN_ASCENDING + * - STASIS_SORT_ALPHA + * - STASIS_SORT_NUMERIC */ void strsort(char **arr, unsigned int sort_mode); @@ -307,4 +307,4 @@ char *tolower_s(char *s); */ char *to_short_version(const char *s); -#endif //OMC_STR_H +#endif //STASIS_STR_H diff --git a/include/strlist.h b/include/strlist.h index 3f35e23..dd22a0a 100644 --- a/include/strlist.h +++ b/include/strlist.h @@ -2,8 +2,8 @@ * String array convenience functions * @file strlist.h */ -#ifndef OMC_STRLIST_H -#define OMC_STRLIST_H +#ifndef STASIS_STRLIST_H +#define STASIS_STRLIST_H #include <stdlib.h> #include "utils.h" #include "str.h" @@ -52,4 +52,4 @@ extern int strlist_errno; const char *strlist_get_error(int flag); -#endif //OMC_STRLIST_H +#endif //STASIS_STRLIST_H diff --git a/include/system.h b/include/system.h index 94d5a36..7019b92 100644 --- a/include/system.h +++ b/include/system.h @@ -2,8 +2,8 @@ * System functions * @file system.h */ -#ifndef OMC_SYSTEM_H -#define OMC_SYSTEM_H +#ifndef STASIS_SYSTEM_H +#define STASIS_SYSTEM_H #include <stdio.h> #include <stdlib.h> @@ -14,7 +14,7 @@ #include <sys/wait.h> #include <sys/stat.h> -#define OMC_SHELL_SAFE_RESTRICT ";&|()" +#define STASIS_SHELL_SAFE_RESTRICT ";&|()" struct Process { // Write stdout stream to file @@ -31,4 +31,4 @@ int shell(struct Process *proc, char *args); int shell_safe(struct Process *proc, char *args); char *shell_output(const char *command, int *status); -#endif //OMC_SYSTEM_H +#endif //STASIS_SYSTEM_H diff --git a/include/template.h b/include/template.h index 362eb3d..ba62667 100644 --- a/include/template.h +++ b/include/template.h @@ -1,8 +1,8 @@ //! @file template.h -#ifndef OMC_TEMPLATE_H -#define OMC_TEMPLATE_H +#ifndef STASIS_TEMPLATE_H +#define STASIS_TEMPLATE_H -#include "omc.h" +#include "core.h" /** * Map a text value to a pointer in memory @@ -64,4 +64,4 @@ struct tplfunc_frame { }; void tpl_register_func(char *key, struct tplfunc_frame *frame); -#endif //OMC_TEMPLATE_H +#endif //STASIS_TEMPLATE_H diff --git a/include/utils.h b/include/utils.h index 8840a0d..2c80e77 100644 --- a/include/utils.h +++ b/include/utils.h @@ -1,6 +1,6 @@ //! @file utils.h -#ifndef OMC_UTILS_H -#define OMC_UTILS_H +#ifndef STASIS_UTILS_H +#define STASIS_UTILS_H #include <stdio.h> #include <stdlib.h> #include <dirent.h> @@ -10,7 +10,7 @@ #include <errno.h> #include "system.h" -#if defined(OMC_OS_WINDOWS) +#if defined(STASIS_OS_WINDOWS) #define PATH_ENV_VAR "path" #define DIR_SEP "\\" #define PATH_SEP ";" @@ -22,8 +22,8 @@ #define LINE_SEP "\n" #endif -#define OMC_XML_PRETTY_PRINT_PROG "xmllint" -#define OMC_XML_PRETTY_PRINT_ARGS "--format" +#define STASIS_XML_PRETTY_PRINT_PROG "xmllint" +#define STASIS_XML_PRETTY_PRINT_ARGS "--format" typedef int (ReaderFn)(size_t line, char **); @@ -167,7 +167,7 @@ char *git_describe(const char *path); char *git_rev_parse(const char *path, char *args); /** - * Helper function to initialize simple OMC internal path strings + * Helper function to initialize simple STASIS internal path strings * * ```c * char *mypath = NULL; @@ -188,43 +188,43 @@ char *git_rev_parse(const char *path, char *args); */ int path_store(char **destptr, size_t maxlen, const char *base, const char *path); -#if defined(OMC_DUMB_TERMINAL) -#define OMC_COLOR_RED "" -#define OMC_COLOR_GREEN "" -#define OMC_COLOR_YELLOW "" -#define OMC_COLOR_BLUE "" -#define OMC_COLOR_WHITE "" -#define OMC_COLOR_RESET "" +#if defined(STASIS_DUMB_TERMINAL) +#define STASIS_COLOR_RED "" +#define STASIS_COLOR_GREEN "" +#define STASIS_COLOR_YELLOW "" +#define STASIS_COLOR_BLUE "" +#define STASIS_COLOR_WHITE "" +#define STASIS_COLOR_RESET "" #else //! Set output color to red -#define OMC_COLOR_RED "\e[1;91m" +#define STASIS_COLOR_RED "\e[1;91m" //! Set output color to green -#define OMC_COLOR_GREEN "\e[1;92m" +#define STASIS_COLOR_GREEN "\e[1;92m" //! Set output color to yellow -#define OMC_COLOR_YELLOW "\e[1;93m" +#define STASIS_COLOR_YELLOW "\e[1;93m" //! Set output color to blue -#define OMC_COLOR_BLUE "\e[1;94m" +#define STASIS_COLOR_BLUE "\e[1;94m" //! Set output color to white -#define OMC_COLOR_WHITE "\e[1;97m" +#define STASIS_COLOR_WHITE "\e[1;97m" //! Reset output color to terminal default -#define OMC_COLOR_RESET "\e[0;37m\e[0m" +#define STASIS_COLOR_RESET "\e[0;37m\e[0m" #endif -#define OMC_MSG_SUCCESS 0 +#define STASIS_MSG_SUCCESS 0 //! Suppress printing of the message text -#define OMC_MSG_NOP 1 << 0 +#define STASIS_MSG_NOP 1 << 0 //! The message is an error -#define OMC_MSG_ERROR 1 << 1 +#define STASIS_MSG_ERROR 1 << 1 //! The message is a warning -#define OMC_MSG_WARN 1 << 2 +#define STASIS_MSG_WARN 1 << 2 //! The message will be indented once -#define OMC_MSG_L1 1 << 3 +#define STASIS_MSG_L1 1 << 3 //! The message will be indented twice -#define OMC_MSG_L2 1 << 4 +#define STASIS_MSG_L2 1 << 4 //! The message will be indented thrice -#define OMC_MSG_L3 1 << 5 +#define STASIS_MSG_L3 1 << 5 //! The message will only be printed in verbose mode -#define OMC_MSG_RESTRICT 1 << 6 +#define STASIS_MSG_RESTRICT 1 << 6 void msg(unsigned type, char *fmt, ...); @@ -278,7 +278,7 @@ int isempty_dir(const char *path); int xml_pretty_print_in_place(const char *filename, const char *pretty_print_prog, const char *pretty_print_args); /** - * Applies OMC fixups to a tox ini config + * Applies STASIS fixups to a tox ini config * @param filename path to tox.ini * @param result path to processed configuration * @return 0 on success, -1 on error @@ -351,4 +351,4 @@ int redact_sensitive(const char **to_redact, size_t to_redact_size, char *src, c */ struct StrList *listdir(const char *path); -#endif //OMC_UTILS_H +#endif //STASIS_UTILS_H diff --git a/include/wheel.h b/include/wheel.h index cca15d4..94cf46a 100644 --- a/include/wheel.h +++ b/include/wheel.h @@ -1,5 +1,5 @@ -#ifndef OMC_WHEEL_H -#define OMC_WHEEL_H +#ifndef STASIS_WHEEL_H +#define STASIS_WHEEL_H #include <dirent.h> #include <string.h> @@ -18,4 +18,4 @@ struct Wheel { }; struct Wheel *get_wheel_file(const char *basepath, const char *name, char *to_match[]); -#endif //OMC_WHEEL_H +#endif //STASIS_WHEEL_H diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f075102..c42bb0f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,7 +2,7 @@ include_directories(${CMAKE_BINARY_DIR}/include) include_directories(${CMAKE_SOURCE_DIR}/include) include_directories(${PROJECT_BINARY_DIR}) -add_library(ohmycal STATIC +add_library(stasis_core STATIC globals.c str.c strlist.c @@ -12,7 +12,7 @@ add_library(ohmycal STATIC utils.c system.c download.c - deliverable.c + delivery.c recipe.c relocation.c wheel.c @@ -24,13 +24,13 @@ add_library(ohmycal STATIC junitxml.c ) -add_executable(omc - omc_main.c +add_executable(stasis + stasis_main.c ) -target_link_libraries(omc PRIVATE ohmycal) -target_link_libraries(omc PUBLIC LibXml2::LibXml2) -add_executable(omc_indexer - omc_indexer.c +target_link_libraries(stasis PRIVATE stasis_core) +target_link_libraries(stasis PUBLIC LibXml2::LibXml2) +add_executable(stasis_indexer + stasis_indexer.c ) -target_link_libraries(omc_indexer PRIVATE ohmycal) -install(TARGETS omc omc_indexer RUNTIME) +target_link_libraries(stasis_indexer PRIVATE stasis_core) +install(TARGETS stasis stasis_indexer RUNTIME) diff --git a/src/artifactory.c b/src/artifactory.c index 5678d64..bd9aa99 100644 --- a/src/artifactory.c +++ b/src/artifactory.c @@ -1,6 +1,6 @@ -#include "omc.h" +#include "core.h" -extern struct OMC_GLOBAL globals; +extern struct STASIS_GLOBAL globals; int artifactory_download_cli(char *dest, char *jfrog_artifactory_base_url, @@ -12,8 +12,8 @@ int artifactory_download_cli(char *dest, char *remote_filename) { char url[PATH_MAX] = {0}; char path[PATH_MAX] = {0}; - char os_ident[OMC_NAME_MAX] = {0}; - char arch_ident[OMC_NAME_MAX] = {0}; + char os_ident[STASIS_NAME_MAX] = {0}; + char arch_ident[STASIS_NAME_MAX] = {0}; // convert platform string to lower-case strcpy(os_ident, os); @@ -73,7 +73,7 @@ int artifactory_download_cli(char *dest, } void jfrt_register_opt_str(char *jfrt_val, const char *opt_name, struct StrList **opt_map) { - char data[OMC_BUFSIZ]; + char data[STASIS_BUFSIZ]; memset(data, 0, sizeof(data)); if (jfrt_val == NULL) { @@ -85,7 +85,7 @@ void jfrt_register_opt_str(char *jfrt_val, const char *opt_name, struct StrList } void jfrt_register_opt_bool(bool jfrt_val, const char *opt_name, struct StrList **opt_map) { - char data[OMC_BUFSIZ]; + char data[STASIS_BUFSIZ]; memset(data, 0, sizeof(data)); if (jfrt_val == false) { @@ -97,7 +97,7 @@ void jfrt_register_opt_bool(bool jfrt_val, const char *opt_name, struct StrList } void jfrt_register_opt_int(int jfrt_val, const char *opt_name, struct StrList **opt_map) { - char data[OMC_BUFSIZ]; + char data[STASIS_BUFSIZ]; memset(data, 0, sizeof(data)); if (jfrt_val == 0) { @@ -109,7 +109,7 @@ void jfrt_register_opt_int(int jfrt_val, const char *opt_name, struct StrList ** } void jfrt_register_opt_long(long jfrt_val, const char *opt_name, struct StrList **opt_map) { - char data[OMC_BUFSIZ]; + char data[STASIS_BUFSIZ]; memset(data, 0, sizeof(data)); if (jfrt_val == 0) { @@ -141,18 +141,18 @@ static int auth_required(char *cmd) { } int jfrt_auth_init(struct JFRT_Auth *auth_ctx) { - char *url = getenv("OMC_JF_ARTIFACTORY_URL"); - char *user = getenv("OMC_JF_USER"); - char *access_token = getenv("OMC_JF_ACCESS_TOKEN"); - char *password = getenv("OMC_JF_PASSWORD"); - char *ssh_key_path = getenv("OMC_JF_SSH_KEY_PATH"); - char *ssh_passphrase = getenv("OMC_JF_SSH_PASSPHRASE"); - char *client_cert_key_path = getenv("OMC_JF_CLIENT_CERT_KEY_PATH"); - char *client_cert_path = getenv("OMC_JF_CLIENT_CERT_PATH"); + char *url = getenv("STASIS_JF_ARTIFACTORY_URL"); + char *user = getenv("STASIS_JF_USER"); + char *access_token = getenv("STASIS_JF_ACCESS_TOKEN"); + char *password = getenv("STASIS_JF_PASSWORD"); + char *ssh_key_path = getenv("STASIS_JF_SSH_KEY_PATH"); + char *ssh_passphrase = getenv("STASIS_JF_SSH_PASSPHRASE"); + char *client_cert_key_path = getenv("STASIS_JF_CLIENT_CERT_KEY_PATH"); + char *client_cert_path = getenv("STASIS_JF_CLIENT_CERT_PATH"); if (!url) { fprintf(stderr, "Artifactory URL is not configured:\n"); - fprintf(stderr, "please set OMC_JF_ARTIFACTORY_URL\n"); + fprintf(stderr, "please set STASIS_JF_ARTIFACTORY_URL\n"); return -1; } auth_ctx->url = url; @@ -184,10 +184,10 @@ int jfrt_auth_init(struct JFRT_Auth *auth_ctx) { auth_ctx->client_cert_path = client_cert_path; } else { fprintf(stderr, "Artifactory authentication is not configured:\n"); - fprintf(stderr, "set OMC_JF_USER and OMC_JF_PASSWORD\n"); - fprintf(stderr, "or, set OMC_JF_ACCESS_TOKEN\n"); - fprintf(stderr, "or, set OMC_JF_SSH_KEY_PATH and OMC_JF_SSH_KEY_PASSPHRASE\n"); - fprintf(stderr, "or, set OMC_JF_CLIENT_CERT_KEY_PATH and OMC_JF_CLIENT_CERT_PATH\n"); + fprintf(stderr, "set STASIS_JF_USER and STASIS_JF_PASSWORD\n"); + fprintf(stderr, "or, set STASIS_JF_ACCESS_TOKEN\n"); + fprintf(stderr, "or, set STASIS_JF_SSH_KEY_PATH and STASIS_JF_SSH_KEY_PASSPHRASE\n"); + fprintf(stderr, "or, set STASIS_JF_CLIENT_CERT_KEY_PATH and STASIS_JF_CLIENT_CERT_PATH\n"); return -1; } return 0; @@ -195,8 +195,8 @@ int jfrt_auth_init(struct JFRT_Auth *auth_ctx) { int jfrog_cli(struct JFRT_Auth *auth, char *args) { struct Process proc; - char cmd[OMC_BUFSIZ]; - char cmd_redacted[OMC_BUFSIZ]; + char cmd[STASIS_BUFSIZ]; + char cmd_redacted[STASIS_BUFSIZ]; int status; memset(&proc, 0, sizeof(proc)); @@ -244,7 +244,7 @@ int jfrog_cli(struct JFRT_Auth *auth, char *args) { // Pings are noisy. Squelch them. if (!strstr(args, "rt ping")) { - msg(OMC_MSG_L2, "Executing: %s\n", cmd_redacted); + msg(STASIS_MSG_L2, "Executing: %s\n", cmd_redacted); } if (!globals.verbose) { @@ -256,28 +256,28 @@ int jfrog_cli(struct JFRT_Auth *auth, char *args) { } int jfrog_cli_rt(struct JFRT_Auth *auth, char *args) { - char cmd[OMC_BUFSIZ]; + char cmd[STASIS_BUFSIZ]; memset(cmd, 0, sizeof(cmd)); snprintf(cmd, sizeof(cmd) - 1, "rt %s", args); return jfrog_cli(auth, args); } int jfrog_cli_rt_build_collect_env(struct JFRT_Auth *auth, char *build_name, char *build_number) { - char cmd[OMC_BUFSIZ]; + char cmd[STASIS_BUFSIZ]; memset(cmd, 0, sizeof(cmd)); snprintf(cmd, sizeof(cmd) - 1, "rt build-collect-env \"%s\" \"%s\"", build_name, build_number); return jfrog_cli(auth, cmd); } int jfrog_cli_rt_build_publish(struct JFRT_Auth *auth, char *build_name, char *build_number) { - char cmd[OMC_BUFSIZ]; + char cmd[STASIS_BUFSIZ]; memset(cmd, 0, sizeof(cmd)); snprintf(cmd, sizeof(cmd) - 1, "rt build-publish \"%s\" \"%s\"", build_name, build_number); return jfrog_cli(auth, cmd); } int jfrog_cli_rt_ping(struct JFRT_Auth *auth) { - char cmd[OMC_BUFSIZ]; + char cmd[STASIS_BUFSIZ]; memset(cmd, 0, sizeof(cmd)); snprintf(cmd, sizeof(cmd) - 1, "rt ping"); @@ -285,7 +285,7 @@ int jfrog_cli_rt_ping(struct JFRT_Auth *auth) { } int jfrog_cli_rt_download(struct JFRT_Auth *auth, struct JFRT_Download *ctx, char *repo_path, char *dest) { - char cmd[OMC_BUFSIZ]; + char cmd[STASIS_BUFSIZ]; memset(cmd, 0, sizeof(cmd)); if (isempty(repo_path)) { @@ -352,7 +352,7 @@ int jfrog_cli_rt_download(struct JFRT_Auth *auth, struct JFRT_Download *ctx, cha } int jfrog_cli_rt_upload(struct JFRT_Auth *auth, struct JFRT_Upload *ctx, char *src, char *repo_path) { - char cmd[OMC_BUFSIZ]; + char cmd[STASIS_BUFSIZ]; memset(cmd, 0, sizeof(cmd)); if (isempty(src)) { diff --git a/src/conda.c b/src/conda.c index efb42fa..342b6af 100644 --- a/src/conda.c +++ b/src/conda.c @@ -5,13 +5,11 @@ #include <unistd.h> #include "conda.h" -extern struct OMC_GLOBAL globals; - int python_exec(const char *args) { char command[PATH_MAX]; memset(command, 0, sizeof(command)); snprintf(command, sizeof(command) - 1, "python %s", args); - msg(OMC_MSG_L3, "Executing: %s\n", command); + msg(STASIS_MSG_L3, "Executing: %s\n", command); return system(command); } @@ -19,7 +17,7 @@ int pip_exec(const char *args) { char command[PATH_MAX]; memset(command, 0, sizeof(command)); snprintf(command, sizeof(command) - 1, "python -m pip %s", args); - msg(OMC_MSG_L3, "Executing: %s\n", command); + msg(STASIS_MSG_L3, "Executing: %s\n", command); return system(command); } @@ -51,7 +49,7 @@ int conda_exec(const char *args) { } snprintf(command, sizeof(command) - 1, "%s %s", conda_as, args); - msg(OMC_MSG_L3, "Executing: %s\n", command); + msg(STASIS_MSG_L3, "Executing: %s\n", command); return system(command); } @@ -109,7 +107,7 @@ int conda_activate(const char *root, const char *env_name) { // Parse the log file: // 1. Extract the environment keys and values from the sub-shell - // 2. Apply it to OMC's runtime environment + // 2. Apply it to STASIS's runtime environment // 3. Now we're ready to execute conda commands anywhere fp = fopen(proc.f_stdout, "r"); if (!fp) { @@ -118,7 +116,7 @@ int conda_activate(const char *root, const char *env_name) { } int i = 0; while (!feof(fp)) { - char buf[OMC_BUFSIZ] = {0}; + char buf[STASIS_BUFSIZ] = {0}; int ch = 0; size_t z = 0; // We are ingesting output from "env -0", can't use fgets() @@ -142,10 +140,10 @@ int conda_activate(const char *root, const char *env_name) { return -1; } if (!part[0]) { - msg(OMC_MSG_WARN | OMC_MSG_L1, "Invalid environment variable key ignored: '%s'\n", buf); + msg(STASIS_MSG_WARN | STASIS_MSG_L1, "Invalid environment variable key ignored: '%s'\n", buf); i++; } else if (!part[1]) { - msg(OMC_MSG_WARN | OMC_MSG_L1, "Invalid environment variable value ignored: '%s'\n", buf); + msg(STASIS_MSG_WARN | STASIS_MSG_L1, "Invalid environment variable value ignored: '%s'\n", buf); i++; } else { setenv(part[0], part[1], 1); @@ -193,7 +191,7 @@ int conda_check_required() { guard_free(cmd_out); guard_strlist_free(&result); } else { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "The base package requirement check could not be performed\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "The base package requirement check could not be performed\n"); return 2; } return 0; @@ -234,7 +232,7 @@ void conda_setup_headless() { } if (conda_exec(cmd)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Unable to install user-defined base packages (conda)\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Unable to install user-defined base packages (conda)\n"); exit(1); } } @@ -256,13 +254,13 @@ void conda_setup_headless() { } if (pip_exec(cmd)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Unable to install user-defined base packages (pip)\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Unable to install user-defined base packages (pip)\n"); exit(1); } } if (conda_check_required()) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Your OMC configuration lacks the bare" + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Your STASIS configuration lacks the bare" " minimum software required to build conda packages." " Please fix it.\n"); exit(1); @@ -3,7 +3,7 @@ int copy2(const char *src, const char *dest, unsigned int op) { size_t bytes_read; size_t bytes_written; - char buf[OMC_BUFSIZ]; + char buf[STASIS_BUFSIZ]; struct stat src_stat, dnamest; FILE *fp1, *fp2; diff --git a/src/deliverable.c b/src/delivery.c index f72f535..e77d41c 100644 --- a/src/deliverable.c +++ b/src/delivery.c @@ -1,9 +1,9 @@ #define _GNU_SOURCE #include <fnmatch.h> -#include "omc.h" +#include "core.h" -extern struct OMC_GLOBAL globals; +extern struct STASIS_GLOBAL globals; static void ini_has_key_required(struct INIFILE *ini, const char *section_name, char *key) { int status = ini_has_key(ini, section_name, key); @@ -87,14 +87,14 @@ int delivery_init_tmpdir(struct Delivery *ctx) { // If the directory doesn't exist, create it if (access(tmpdir, F_OK) < 0) { if (mkdirs(tmpdir, 0755) < 0) { - msg(OMC_MSG_ERROR | OMC_MSG_L1, "Unable to create temporary storage directory: %s (%s)\n", tmpdir, strerror(errno)); + msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "Unable to create temporary storage directory: %s (%s)\n", tmpdir, strerror(errno)); goto l_delivery_init_tmpdir_fatal; } } // If we can't read, write, or execute, then die if (access(tmpdir, R_OK | W_OK | X_OK) < 0) { - msg(OMC_MSG_ERROR | OMC_MSG_L1, "%s requires at least 0755 permissions.\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "%s requires at least 0755 permissions.\n"); goto l_delivery_init_tmpdir_fatal; } @@ -103,15 +103,15 @@ int delivery_init_tmpdir(struct Delivery *ctx) { goto l_delivery_init_tmpdir_fatal; } -#if defined(OMC_OS_LINUX) +#if defined(STASIS_OS_LINUX) // If we can't execute programs, or write data to the file system at all, then die if ((st.f_flag & ST_NOEXEC) != 0) { - msg(OMC_MSG_ERROR | OMC_MSG_L1, "%s is mounted with noexec\n", tmpdir); + msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "%s is mounted with noexec\n", tmpdir); goto l_delivery_init_tmpdir_fatal; } #endif if ((st.f_flag & ST_RDONLY) != 0) { - msg(OMC_MSG_ERROR | OMC_MSG_L1, "%s is mounted read-only\n", tmpdir); + msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "%s is mounted read-only\n", tmpdir); goto l_delivery_init_tmpdir_fatal; } @@ -208,21 +208,21 @@ void delivery_free(struct Delivery *ctx) { guard_strlist_free(&ctx->deploy.jfrog[i].files); } - if (ctx->_omc_ini_fp.delivery) { - ini_free(&ctx->_omc_ini_fp.delivery); + if (ctx->_stasis_ini_fp.delivery) { + ini_free(&ctx->_stasis_ini_fp.delivery); } - guard_free(ctx->_omc_ini_fp.delivery_path); + guard_free(ctx->_stasis_ini_fp.delivery_path); - if (ctx->_omc_ini_fp.cfg) { + if (ctx->_stasis_ini_fp.cfg) { // optional extras - ini_free(&ctx->_omc_ini_fp.cfg); + ini_free(&ctx->_stasis_ini_fp.cfg); } - guard_free(ctx->_omc_ini_fp.cfg_path); + guard_free(ctx->_stasis_ini_fp.cfg_path); - if (ctx->_omc_ini_fp.mission) { - ini_free(&ctx->_omc_ini_fp.mission); + if (ctx->_stasis_ini_fp.mission) { + ini_free(&ctx->_stasis_ini_fp.mission); } - guard_free(ctx->_omc_ini_fp.mission_path); + guard_free(ctx->_stasis_ini_fp.mission_path); } void delivery_init_dirs_stage2(struct Delivery *ctx) { @@ -243,21 +243,21 @@ void delivery_init_dirs_stage2(struct Delivery *ctx) { } void delivery_init_dirs_stage1(struct Delivery *ctx) { - char *rootdir = getenv("OMC_ROOT"); + char *rootdir = getenv("STASIS_ROOT"); if (rootdir) { if (isempty(rootdir)) { - fprintf(stderr, "OMC_ROOT is set, but empty. Please assign a file system path to this environment variable.\n"); + fprintf(stderr, "STASIS_ROOT is set, but empty. Please assign a file system path to this environment variable.\n"); exit(1); } path_store(&ctx->storage.root, PATH_MAX, rootdir, ctx->info.build_name); } else { - // use "omc" in current working directory - path_store(&ctx->storage.root, PATH_MAX, "omc", ctx->info.build_name); + // use "stasis" in current working directory + path_store(&ctx->storage.root, PATH_MAX, "stasis", ctx->info.build_name); } path_store(&ctx->storage.tools_dir, PATH_MAX, ctx->storage.root, "tools"); path_store(&ctx->storage.tmpdir, PATH_MAX, ctx->storage.root, "tmp"); if (delivery_init_tmpdir(ctx)) { - msg(OMC_MSG_ERROR | OMC_MSG_L1, "Set $TMPDIR to a location other than %s\n", globals.tmpdir); + msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "Set $TMPDIR to a location other than %s\n", globals.tmpdir); if (globals.tmpdir) guard_free(globals.tmpdir); exit(1); @@ -271,7 +271,7 @@ void delivery_init_dirs_stage1(struct Delivery *ctx) { } if (access(ctx->storage.mission_dir, F_OK)) { - msg(OMC_MSG_L1, "%s: %s\n", ctx->storage.mission_dir, strerror(errno)); + msg(STASIS_MSG_L1, "%s: %s\n", ctx->storage.mission_dir, strerror(errno)); exit(1); } @@ -281,7 +281,7 @@ void delivery_init_dirs_stage1(struct Delivery *ctx) { globals.conda_fresh_start = false; /* if (mkdirs(globals.conda_install_prefix, 0755)) { - msg(OMC_MSG_ERROR | OMC_MSG_L1, "Unable to create directory: %s: %s\n", + msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "Unable to create directory: %s: %s\n", strerror(errno), globals.conda_install_prefix); exit(1); } @@ -289,24 +289,24 @@ void delivery_init_dirs_stage1(struct Delivery *ctx) { /* ctx->storage.conda_install_prefix = realpath(globals.conda_install_prefix, NULL); if (!ctx->storage.conda_install_prefix) { - msg(OMC_MSG_ERROR | OMC_MSG_L1, "realpath(): Conda installation prefix reassignment failed\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "realpath(): Conda installation prefix reassignment failed\n"); exit(1); } ctx->storage.conda_install_prefix = strdup(globals.conda_install_prefix); */ path_store(&ctx->storage.conda_install_prefix, PATH_MAX, globals.conda_install_prefix, "conda"); } else { - // install conda under the OMC tree + // install conda under the STASIS tree path_store(&ctx->storage.conda_install_prefix, PATH_MAX, ctx->storage.tools_dir, "conda"); } } int delivery_init_platform(struct Delivery *ctx) { - msg(OMC_MSG_L2, "Setting architecture\n"); + msg(STASIS_MSG_L2, "Setting architecture\n"); char archsuffix[20]; struct utsname uts; if (uname(&uts)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "uname() failed: %s\n", strerror(errno)); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "uname() failed: %s\n", strerror(errno)); return -1; } @@ -331,7 +331,7 @@ int delivery_init_platform(struct Delivery *ctx) { strcpy(archsuffix, ctx->system.arch); } - msg(OMC_MSG_L2, "Setting platform\n"); + msg(STASIS_MSG_L2, "Setting platform\n"); strcpy(ctx->system.platform[DELIVERY_PLATFORM], uts.sysname); if (!strcmp(ctx->system.platform[DELIVERY_PLATFORM], "Darwin")) { sprintf(ctx->system.platform[DELIVERY_PLATFORM_CONDA_SUBDIR], "osx-%s", archsuffix); @@ -350,11 +350,11 @@ int delivery_init_platform(struct Delivery *ctx) { } // Declare some important bits as environment variables - setenv("OMC_ARCH", ctx->system.arch, 1); - setenv("OMC_PLATFORM", ctx->system.platform[DELIVERY_PLATFORM], 1); - setenv("OMC_CONDA_ARCH", ctx->system.arch, 1); - setenv("OMC_CONDA_PLATFORM", ctx->system.platform[DELIVERY_PLATFORM_CONDA_INSTALLER], 1); - setenv("OMC_CONDA_PLATFORM_SUBDIR", ctx->system.platform[DELIVERY_PLATFORM_CONDA_SUBDIR], 1); + setenv("STASIS_ARCH", ctx->system.arch, 1); + setenv("STASIS_PLATFORM", ctx->system.platform[DELIVERY_PLATFORM], 1); + setenv("STASIS_CONDA_ARCH", ctx->system.arch, 1); + setenv("STASIS_CONDA_PLATFORM", ctx->system.platform[DELIVERY_PLATFORM_CONDA_INSTALLER], 1); + setenv("STASIS_CONDA_PLATFORM_SUBDIR", ctx->system.platform[DELIVERY_PLATFORM_CONDA_SUBDIR], 1); // Register template variables // These were moved out of main() because we can't take the address of system.platform[x] @@ -369,28 +369,28 @@ static int populate_mission_ini(struct Delivery **ctx) { union INIVal val; struct INIFILE *ini; - if ((*ctx)->_omc_ini_fp.mission) { + if ((*ctx)->_stasis_ini_fp.mission) { return 0; } // Now populate the rules char missionfile[PATH_MAX] = {0}; - if (getenv("OMC_SYSCONFDIR")) { + if (getenv("STASIS_SYSCONFDIR")) { sprintf(missionfile, "%s/%s/%s/%s.ini", - getenv("OMC_SYSCONFDIR"), "mission", (*ctx)->meta.mission, (*ctx)->meta.mission); + getenv("STASIS_SYSCONFDIR"), "mission", (*ctx)->meta.mission, (*ctx)->meta.mission); } else { sprintf(missionfile, "%s/%s/%s/%s.ini", globals.sysconfdir, "mission", (*ctx)->meta.mission, (*ctx)->meta.mission); } - msg(OMC_MSG_L2, "Reading mission configuration: %s\n", missionfile); - (*ctx)->_omc_ini_fp.mission = ini_open(missionfile); - ini = (*ctx)->_omc_ini_fp.mission; + msg(STASIS_MSG_L2, "Reading mission configuration: %s\n", missionfile); + (*ctx)->_stasis_ini_fp.mission = ini_open(missionfile); + ini = (*ctx)->_stasis_ini_fp.mission; if (!ini) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Failed to read misson configuration: %s, %s\n", missionfile, strerror(errno)); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Failed to read misson configuration: %s, %s\n", missionfile, strerror(errno)); exit(1); } - (*ctx)->_omc_ini_fp.mission_path = strdup(missionfile); + (*ctx)->_stasis_ini_fp.mission_path = strdup(missionfile); ini_getval_required(ini, "meta", "release_fmt", INIVAL_TYPE_STR, &val); conv_str(&(*ctx)->rules.release_fmt, val); @@ -455,7 +455,7 @@ void validate_delivery_ini(struct INIFILE *ini) { static int populate_delivery_ini(struct Delivery *ctx) { union INIVal val; - struct INIFILE *ini = ctx->_omc_ini_fp.delivery; + struct INIFILE *ini = ctx->_stasis_ini_fp.delivery; struct INIData *rtdata; RuntimeEnv *rt; @@ -464,7 +464,7 @@ static int populate_delivery_ini(struct Delivery *ctx) { // keys in the configuration rt = runtime_copy(__environ); while ((rtdata = ini_getall(ini, "runtime")) != NULL) { - char rec[OMC_BUFSIZ]; + char rec[STASIS_BUFSIZ]; sprintf(rec, "%s=%s", lstrip(strip(rtdata->key)), lstrip(strip(rtdata->value))); runtime_set(rt, rtdata->key, rtdata->value); } @@ -680,7 +680,7 @@ static int populate_delivery_ini(struct Delivery *ctx) { static int populate_delivery_cfg(struct Delivery *ctx) { union INIVal val; - struct INIFILE *cfg = ctx->_omc_ini_fp.cfg; + struct INIFILE *cfg = ctx->_stasis_ini_fp.cfg; if (!cfg) { return -1; } @@ -734,12 +734,12 @@ static int populate_info(struct Delivery *ctx) { time(&ctx->info.time_now); ctx->info.time_info = localtime(&ctx->info.time_now); - ctx->info.time_str_epoch = calloc(OMC_TIME_STR_MAX, sizeof(*ctx->info.time_str_epoch)); + ctx->info.time_str_epoch = calloc(STASIS_TIME_STR_MAX, sizeof(*ctx->info.time_str_epoch)); if (!ctx->info.time_str_epoch) { - msg(OMC_MSG_ERROR, "Unable to allocate memory for Unix epoch string\n"); + msg(STASIS_MSG_ERROR, "Unable to allocate memory for Unix epoch string\n"); return -1; } - snprintf(ctx->info.time_str_epoch, OMC_TIME_STR_MAX - 1, "%li", ctx->info.time_now); + snprintf(ctx->info.time_str_epoch, STASIS_TIME_STR_MAX - 1, "%li", ctx->info.time_now); } return 0; } @@ -747,8 +747,8 @@ static int populate_info(struct Delivery *ctx) { int *bootstrap_build_info(struct Delivery *ctx) { struct Delivery local; memset(&local, 0, sizeof(local)); - local._omc_ini_fp.cfg = ini_open(ctx->_omc_ini_fp.cfg_path); - local._omc_ini_fp.delivery = ini_open(ctx->_omc_ini_fp.delivery_path); + local._stasis_ini_fp.cfg = ini_open(ctx->_stasis_ini_fp.cfg_path); + local._stasis_ini_fp.delivery = ini_open(ctx->_stasis_ini_fp.delivery_path); delivery_init_platform(&local); populate_delivery_cfg(&local); populate_delivery_ini(&local); @@ -768,7 +768,7 @@ int delivery_init(struct Delivery *ctx) { populate_delivery_cfg(ctx); // Set artifactory URL via environment variable if possible - char *jfurl = getenv("OMC_JF_ARTIFACTORY_URL"); + char *jfurl = getenv("STASIS_JF_ARTIFACTORY_URL"); if (jfurl) { if (globals.jfrog.url) { guard_free(globals.jfrog.url); @@ -777,7 +777,7 @@ int delivery_init(struct Delivery *ctx) { } // Set artifactory repository via environment if possible - char *jfrepo = getenv("OMC_JF_REPO"); + char *jfrepo = getenv("STASIS_JF_REPO"); if (jfrepo) { if (globals.jfrog.repo) { guard_free(globals.jfrog.repo); @@ -788,7 +788,7 @@ int delivery_init(struct Delivery *ctx) { // Configure architecture and platform information delivery_init_platform(ctx); - // Create OMC directory structure + // Create STASIS directory structure delivery_init_dirs_stage1(ctx); char config_local[PATH_MAX]; @@ -800,7 +800,7 @@ int delivery_init(struct Delivery *ctx) { setenv("XDG_CACHE_HOME", ctx->storage.tmpdir, 1); // add tools to PATH - char pathvar_tmp[OMC_BUFSIZ]; + char pathvar_tmp[STASIS_BUFSIZ]; sprintf(pathvar_tmp, "%s/bin:%s", ctx->storage.tools_dir, getenv("PATH")); setenv("PATH", pathvar_tmp, 1); @@ -829,7 +829,7 @@ int delivery_format_str(struct Delivery *ctx, char **dest, const char *fmt) { size_t fmt_len = strlen(fmt); if (!*dest) { - *dest = calloc(OMC_NAME_MAX, sizeof(**dest)); + *dest = calloc(STASIS_NAME_MAX, sizeof(**dest)); if (!*dest) { return -1; } @@ -968,13 +968,13 @@ void delivery_runtime_show(struct Delivery *ctx) { // no data return; } - strlist_sort(rt, OMC_SORT_ALPHA); + strlist_sort(rt, STASIS_SORT_ALPHA); size_t total = strlist_count(rt); for (size_t i = 0; i < total; i++) { char *item = strlist_item(rt, i); if (!item) { // not supposed to occur - msg(OMC_MSG_WARN | OMC_MSG_L1, "Encountered unexpected NULL at record %zu of %zu of runtime array.\n", i); + msg(STASIS_MSG_WARN | STASIS_MSG_L1, "Encountered unexpected NULL at record %zu of %zu of runtime array.\n", i); return; } printf("%s\n", item); @@ -1150,7 +1150,7 @@ static const struct Test *requirement_from_test(struct Delivery *ctx, const char int delivery_install_packages(struct Delivery *ctx, char *conda_install_dir, char *env_name, int type, struct StrList **manifest) { char cmd[PATH_MAX]; - char pkgs[OMC_BUFSIZ]; + char pkgs[STASIS_BUFSIZ]; char *env_current = getenv("CONDA_DEFAULT_ENV"); if (env_current) { @@ -1251,7 +1251,7 @@ int delivery_get_installer(struct Delivery *ctx, char *installer_url) { return -1; } } else { - msg(OMC_MSG_RESTRICT | OMC_MSG_L3, "Skipped, installer already exists\n", script_path); + msg(STASIS_MSG_RESTRICT | STASIS_MSG_L3, "Skipped, installer already exists\n", script_path); } ctx->conda.installer_path = strdup(script_path); @@ -1264,7 +1264,7 @@ int delivery_get_installer(struct Delivery *ctx, char *installer_url) { } int delivery_copy_conda_artifacts(struct Delivery *ctx) { - char cmd[OMC_BUFSIZ]; + char cmd[STASIS_BUFSIZ]; char conda_build_dir[PATH_MAX]; char subdir[PATH_MAX]; memset(cmd, 0, sizeof(cmd)); @@ -1275,7 +1275,7 @@ int delivery_copy_conda_artifacts(struct Delivery *ctx) { // One must run conda build at least once to create the "conda-bld" directory. // When this directory is missing there can be no build artifacts. if (access(conda_build_dir, F_OK) < 0) { - msg(OMC_MSG_RESTRICT | OMC_MSG_WARN | OMC_MSG_L3, + msg(STASIS_MSG_RESTRICT | STASIS_MSG_WARN | STASIS_MSG_L3, "Skipped: 'conda build' has never been executed.\n"); return 0; } @@ -1393,7 +1393,7 @@ void delivery_install_conda(char *install_script, char *conda_install_dir) { } } } else { - msg(OMC_MSG_L3, "Conda removal disabled by configuration\n"); + msg(STASIS_MSG_L3, "Conda removal disabled by configuration\n"); } } @@ -1405,7 +1405,7 @@ void delivery_conda_enable(struct Delivery *ctx, char *conda_install_dir) { // Setting the CONDARC environment variable appears to be the only consistent // way to make sure the file is used. Not setting this variable leads to strange - // behavior, especially if a conda environment is already active when OMC is loaded. + // behavior, especially if a conda environment is already active when STASIS is loaded. char rcpath[PATH_MAX]; sprintf(rcpath, "%s/%s", conda_install_dir, ".condarc"); setenv("CONDARC", rcpath, 1); @@ -1435,7 +1435,7 @@ void delivery_defer_packages(struct Delivery *ctx, int type) { deferred = ctx->conda.pip_packages_defer; strcpy(mode, "pip"); } - msg(OMC_MSG_L2, "Filtering %s packages by test definition...\n", mode); + msg(STASIS_MSG_L2, "Filtering %s packages by test definition...\n", mode); struct StrList *filtered = NULL; filtered = strlist_init(); @@ -1447,7 +1447,7 @@ void delivery_defer_packages(struct Delivery *ctx, int type) { // no data continue; } - msg(OMC_MSG_L3, "package '%s': ", name); + msg(STASIS_MSG_L3, "package '%s': ", name); // Compile a list of packages that are *also* to be tested. char *version; @@ -1479,7 +1479,7 @@ void delivery_defer_packages(struct Delivery *ctx, int type) { } if (!strlist_count(deferred)) { - msg(OMC_MSG_WARN | OMC_MSG_L2, "No %s packages were filtered by test definitions\n", mode); + msg(STASIS_MSG_WARN | STASIS_MSG_L2, "No %s packages were filtered by test definitions\n", mode); } else { if (DEFER_CONDA == type) { strlist_free(&ctx->conda.conda_packages); @@ -1501,7 +1501,7 @@ const char *release_header = "# delivery_name: %s\n" "# conda_build_ident: %s\n"; char *delivery_get_release_header(struct Delivery *ctx) { - char output[OMC_BUFSIZ]; + char output[STASIS_BUFSIZ]; char stamp[100]; strftime(stamp, sizeof(stamp) - 1, "%c", ctx->info.time_info); sprintf(output, release_header, @@ -1516,7 +1516,7 @@ char *delivery_get_release_header(struct Delivery *ctx) { int delivery_dump_metadata(struct Delivery *ctx) { FILE *fp; char filename[PATH_MAX]; - sprintf(filename, "%s/meta-%s.omc", ctx->storage.meta_dir, ctx->info.release_name); + sprintf(filename, "%s/meta-%s.stasis", ctx->storage.meta_dir, ctx->info.release_name); fp = fopen(filename, "w+"); if (!fp) { return -1; @@ -1563,12 +1563,12 @@ void delivery_rewrite_spec(struct Delivery *ctx, char *filename, unsigned stage) if (stage == DELIVERY_REWRITE_SPEC_STAGE_1) { header = delivery_get_release_header(ctx); if (!header) { - msg(OMC_MSG_ERROR, "failed to generate release header string\n", filename); + msg(STASIS_MSG_ERROR, "failed to generate release header string\n", filename); exit(1); } tempfile = xmkstemp(&tp, "w+"); if (!tempfile || !tp) { - msg(OMC_MSG_ERROR, "%s: unable to create temporary file\n", strerror(errno)); + msg(STASIS_MSG_ERROR, "%s: unable to create temporary file\n", strerror(errno)); exit(1); } fprintf(tp, "%s", header); @@ -1576,7 +1576,7 @@ void delivery_rewrite_spec(struct Delivery *ctx, char *filename, unsigned stage) // Read the original file char **contents = file_readlines(filename, 0, 0, NULL); if (!contents) { - msg(OMC_MSG_ERROR, "%s: unable to read %s", filename); + msg(STASIS_MSG_ERROR, "%s: unable to read %s", filename); exit(1); } @@ -1629,7 +1629,7 @@ void delivery_rewrite_spec(struct Delivery *ctx, char *filename, unsigned stage) sprintf(output, "%s/%s/%s/%s/packages/conda", globals.jfrog.url, globals.jfrog.repo, ctx->meta.mission, ctx->info.build_name); file_replace_text(filename, "@CONDA_CHANNEL@", output, 0); } else { - msg(OMC_MSG_WARN, "conda_staging_url is not configured\n", filename); + msg(STASIS_MSG_WARN, "conda_staging_url is not configured\n", filename); file_replace_text(filename, " - @CONDA_CHANNEL@", "", 0); } @@ -1651,16 +1651,16 @@ void delivery_tests_run(struct Delivery *ctx) { memset(&proc, 0, sizeof(proc)); if (!ctx->tests[0].name) { - msg(OMC_MSG_WARN | OMC_MSG_L2, "no tests are defined!\n"); + msg(STASIS_MSG_WARN | STASIS_MSG_L2, "no tests are defined!\n"); } else { for (size_t i = 0; i < sizeof(ctx->tests) / sizeof(ctx->tests[0]); i++) { if (!ctx->tests[i].name && !ctx->tests[i].repository && !ctx->tests[i].script) { // skip unused test records continue; } - msg(OMC_MSG_L2, "Executing tests for %s %s\n", ctx->tests[i].name, ctx->tests[i].version); + msg(STASIS_MSG_L2, "Executing tests for %s %s\n", ctx->tests[i].name, ctx->tests[i].version); if (!ctx->tests[i].script || !strlen(ctx->tests[i].script)) { - msg(OMC_MSG_WARN | OMC_MSG_L3, "Nothing to do. To fix, declare a 'script' in section: [test:%s]\n", + msg(STASIS_MSG_WARN | STASIS_MSG_L3, "Nothing to do. To fix, declare a 'script' in section: [test:%s]\n", ctx->tests[i].name); continue; } @@ -1669,12 +1669,12 @@ void delivery_tests_run(struct Delivery *ctx) { sprintf(destdir, "%s/%s", ctx->storage.build_sources_dir, path_basename(ctx->tests[i].repository)); if (!access(destdir, F_OK)) { - msg(OMC_MSG_L3, "Purging repository %s\n", destdir); + msg(STASIS_MSG_L3, "Purging repository %s\n", destdir); if (rmtree(destdir)) { COE_CHECK_ABORT(1, "Unable to remove repository\n"); } } - msg(OMC_MSG_L3, "Cloning repository %s\n", ctx->tests[i].repository); + msg(STASIS_MSG_L3, "Cloning repository %s\n", ctx->tests[i].repository); if (!git_clone(&proc, ctx->tests[i].repository, destdir, ctx->tests[i].version)) { ctx->tests[i].repository_info_tag = strdup(git_describe(destdir)); ctx->tests[i].repository_info_ref = strdup(git_rev_parse(destdir, "HEAD")); @@ -1693,14 +1693,14 @@ void delivery_tests_run(struct Delivery *ctx) { int status; char cmd[PATH_MAX]; - msg(OMC_MSG_L3, "Testing %s\n", ctx->tests[i].name); + msg(STASIS_MSG_L3, "Testing %s\n", ctx->tests[i].name); memset(&proc, 0, sizeof(proc)); // Apply workaround for tox positional arguments char *toxconf = NULL; if (!access("tox.ini", F_OK)) { if (!fix_tox_conf("tox.ini", &toxconf)) { - msg(OMC_MSG_L3, "Fixing tox positional arguments\n"); + msg(STASIS_MSG_L3, "Fixing tox positional arguments\n"); if (!globals.workaround.tox_posargs) { globals.workaround.tox_posargs = calloc(PATH_MAX, sizeof(*globals.workaround.tox_posargs)); } else { @@ -1724,7 +1724,7 @@ void delivery_tests_run(struct Delivery *ctx) { status = shell(&proc, cmd); if (status) { - msg(OMC_MSG_ERROR, "Script failure: %s\n%s\n\nExit code: %d\n", ctx->tests[i].name, ctx->tests[i].script, status); + msg(STASIS_MSG_ERROR, "Script failure: %s\n%s\n\nExit code: %d\n", ctx->tests[i].name, ctx->tests[i].script, status); COE_CHECK_ABORT(1, "Test failure"); } @@ -1734,7 +1734,7 @@ void delivery_tests_run(struct Delivery *ctx) { } popd(); #else - msg(OMC_MSG_WARNING | OMC_MSG_L3, "TESTING DISABLED BY CODE!\n"); + msg(STASIS_MSG_WARNING | STASIS_MSG_L3, "TESTING DISABLED BY CODE!\n"); #endif } } @@ -1763,12 +1763,12 @@ int delivery_init_artifactory(struct Delivery *ctx) { if (!access(filepath, F_OK)) { // already have it - msg(OMC_MSG_L3, "Skipped download, %s already exists\n", filepath); + msg(STASIS_MSG_L3, "Skipped download, %s already exists\n", filepath); goto delivery_init_artifactory_envsetup; } char *platform = ctx->system.platform[DELIVERY_PLATFORM]; - msg(OMC_MSG_L3, "Downloading %s for %s %s\n", globals.jfrog.remote_filename, platform, ctx->system.arch); + msg(STASIS_MSG_L3, "Downloading %s for %s %s\n", globals.jfrog.remote_filename, platform, ctx->system.arch); if ((status = artifactory_download_cli(dest, globals.jfrog.jfrog_artifactory_base_url, globals.jfrog.jfrog_artifactory_product, @@ -1809,8 +1809,8 @@ int delivery_artifact_upload(struct Delivery *ctx) { jfrt_upload_init(&ctx->deploy.jfrog[i].upload_ctx); if (!globals.jfrog.repo) { - msg(OMC_MSG_WARN, "Artifactory repository path is not configured!\n"); - fprintf(stderr, "set OMC_JF_REPO environment variable...\nOr append to configuration file:\n\n"); + msg(STASIS_MSG_WARN, "Artifactory repository path is not configured!\n"); + fprintf(stderr, "set STASIS_JF_REPO environment variable...\nOr append to configuration file:\n\n"); fprintf(stderr, "[deploy:artifactory]\nrepo = example/generic/repo/path\n\n"); status++; break; @@ -1820,7 +1820,7 @@ int delivery_artifact_upload(struct Delivery *ctx) { if (!ctx->deploy.jfrog[i].repo || isempty(ctx->deploy.jfrog[i].repo) || !strlen(ctx->deploy.jfrog[i].repo)) { // Unlikely to trigger if the config parser is working correctly - msg(OMC_MSG_ERROR, "Artifactory repository path is empty. Cannot continue.\n"); + msg(STASIS_MSG_ERROR, "Artifactory repository path is empty. Cannot continue.\n"); status++; break; } @@ -1833,7 +1833,7 @@ int delivery_artifact_upload(struct Delivery *ctx) { char dest[PATH_MAX]; // repo + remote dir if (jfrog_cli_rt_ping(&ctx->deploy.jfrog_auth)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Unable to contact artifactory server: %s\n", ctx->deploy.jfrog_auth.url); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Unable to contact artifactory server: %s\n", ctx->deploy.jfrog_auth.url); return -1; } @@ -1865,7 +1865,7 @@ int delivery_mission_render_files(struct Delivery *ctx) { char *src; char *dest; } data; - struct INIFILE *cfg = ctx->_omc_ini_fp.mission; + struct INIFILE *cfg = ctx->_stasis_ini_fp.mission; union INIVal val; memset(&data, 0, sizeof(data)); @@ -1886,7 +1886,7 @@ int delivery_mission_render_files(struct Delivery *ctx) { return 1; } sprintf(data.src, "%s/%s/%s", ctx->storage.mission_dir, ctx->meta.mission, val.as_char_p); - msg(OMC_MSG_L2, "%s\n", data.src); + msg(STASIS_MSG_L2, "%s\n", data.src); ini_getval_required(cfg, section_name, "destination", INIVAL_TYPE_STR, &val); conv_str(&data.dest, val); @@ -1924,7 +1924,7 @@ int delivery_mission_render_files(struct Delivery *ctx) { } fclose(fp); - msg(OMC_MSG_L3, "Writing %s\n", data.dest); + msg(STASIS_MSG_L3, "Writing %s\n", data.dest); if (tpl_render_to_file(contents, data.dest)) { guard_free(contents); guard_free(data.dest); @@ -1942,19 +1942,19 @@ int delivery_docker(struct Delivery *ctx) { if (!docker_capable(&ctx->deploy.docker.capabilities)) { return -1; } - char tag[OMC_NAME_MAX]; + char tag[STASIS_NAME_MAX]; char args[PATH_MAX]; int has_registry = ctx->deploy.docker.registry != NULL; size_t total_tags = strlist_count(ctx->deploy.docker.tags); size_t total_build_args = strlist_count(ctx->deploy.docker.build_args); if (!has_registry) { - msg(OMC_MSG_WARN | OMC_MSG_L2, "No docker registry defined. You will need to manually retag the resulting image.\n"); + msg(STASIS_MSG_WARN | STASIS_MSG_L2, "No docker registry defined. You will need to manually retag the resulting image.\n"); } if (!total_tags) { char default_tag[PATH_MAX]; - msg(OMC_MSG_WARN | OMC_MSG_L2, "No docker tags defined by configuration. Generating default tag(s).\n"); + msg(STASIS_MSG_WARN | STASIS_MSG_L2, "No docker tags defined by configuration. Generating default tag(s).\n"); // generate local tag memset(default_tag, 0, sizeof(default_tag)); sprintf(default_tag, "%s:%s-py%s", ctx->meta.name, ctx->info.build_name, ctx->meta.python_compact); @@ -2018,7 +2018,7 @@ int delivery_docker(struct Delivery *ctx) { memset(dest, 0, sizeof(dest)); sprintf(dest, "%s/packages", ctx->storage.build_docker_dir); - msg(OMC_MSG_L2, "Copying conda packages\n"); + msg(STASIS_MSG_L2, "Copying conda packages\n"); memset(rsync_cmd, 0, sizeof(rsync_cmd)); sprintf(rsync_cmd, "rsync -avi --progress '%s' '%s'", ctx->storage.conda_artifact_dir, dest); if (system(rsync_cmd)) { @@ -2026,7 +2026,7 @@ int delivery_docker(struct Delivery *ctx) { return -1; } - msg(OMC_MSG_L2, "Copying wheel packages\n"); + msg(STASIS_MSG_L2, "Copying wheel packages\n"); memset(rsync_cmd, 0, sizeof(rsync_cmd)); sprintf(rsync_cmd, "rsync -avi --progress '%s' '%s'", ctx->storage.wheel_artifact_dir, dest); if (system(rsync_cmd)) { @@ -2043,20 +2043,20 @@ int delivery_docker(struct Delivery *ctx) { strcpy(tag, strlist_item(ctx->deploy.docker.tags, 0)); docker_sanitize_tag(tag); - msg(OMC_MSG_L2, "Executing image test script for %s\n", tag); + msg(STASIS_MSG_L2, "Executing image test script for %s\n", tag); if (ctx->deploy.docker.test_script) { if (isempty(ctx->deploy.docker.test_script)) { - msg(OMC_MSG_L2 | OMC_MSG_WARN, "Image test script has no content\n"); + msg(STASIS_MSG_L2 | STASIS_MSG_WARN, "Image test script has no content\n"); } else { int state; if ((state = docker_script(tag, ctx->deploy.docker.test_script, 0))) { - msg(OMC_MSG_L2 | OMC_MSG_ERROR, "Non-zero exit (%d) from test script. %s image archive will not be generated.\n", state >> 8, tag); + msg(STASIS_MSG_L2 | STASIS_MSG_ERROR, "Non-zero exit (%d) from test script. %s image archive will not be generated.\n", state >> 8, tag); // test failed -- don't save the image return -1; } } } else { - msg(OMC_MSG_L2 | OMC_MSG_WARN, "No image test script defined\n"); + msg(STASIS_MSG_L2 | STASIS_MSG_WARN, "No image test script defined\n"); } // Test successful, save image @@ -2089,9 +2089,9 @@ int delivery_fixup_test_results(struct Delivery *ctx) { } sprintf(path, "%s/%s", ctx->storage.results_dir, rec->d_name); - msg(OMC_MSG_L2, "%s\n", rec->d_name); - if (xml_pretty_print_in_place(path, OMC_XML_PRETTY_PRINT_PROG, OMC_XML_PRETTY_PRINT_ARGS)) { - msg(OMC_MSG_L3 | OMC_MSG_WARN, "Failed to rewrite file '%s'\n", rec->d_name); + msg(STASIS_MSG_L2, "%s\n", rec->d_name); + if (xml_pretty_print_in_place(path, STASIS_XML_PRETTY_PRINT_PROG, STASIS_XML_PRETTY_PRINT_ARGS)) { + msg(STASIS_MSG_L3 | STASIS_MSG_WARN, "Failed to rewrite file '%s'\n", rec->d_name); } } diff --git a/src/docker.c b/src/docker.c index 308fbc7..da7c1ce 100644 --- a/src/docker.c +++ b/src/docker.c @@ -1,4 +1,4 @@ -#include "omc.h" +#include "core.h" #include "docker.h" @@ -9,11 +9,11 @@ int docker_exec(const char *args, unsigned flags) { memset(&proc, 0, sizeof(proc)); memset(cmd, 0, sizeof(cmd)); snprintf(cmd, sizeof(cmd) - 1, "docker %s", args); - if (flags & OMC_DOCKER_QUIET) { + if (flags & STASIS_DOCKER_QUIET) { strcpy(proc.f_stdout, "/dev/null"); strcpy(proc.f_stderr, "/dev/null"); } else { - msg(OMC_MSG_L2, "Executing: %s\n", cmd); + msg(STASIS_MSG_L2, "Executing: %s\n", cmd); } shell(&proc, cmd); @@ -25,7 +25,7 @@ int docker_script(const char *image, char *data, unsigned flags) { FILE *infile; FILE *outfile; char cmd[PATH_MAX]; - char buffer[OMC_BUFSIZ]; + char buffer[STASIS_BUFSIZ]; memset(cmd, 0, sizeof(cmd)); snprintf(cmd, sizeof(cmd) - 1, "docker run --rm -i %s /bin/sh -", image); @@ -59,10 +59,10 @@ int docker_build(const char *dirpath, const char *args, int engine) { memset(build, 0, sizeof(build)); memset(cmd, 0, sizeof(cmd)); - if (engine & OMC_DOCKER_BUILD) { + if (engine & STASIS_DOCKER_BUILD) { strcpy(build, "build"); } - if (engine & OMC_DOCKER_BUILD_X) { + if (engine & STASIS_DOCKER_BUILD_X) { strcpy(build, "buildx build"); } snprintf(cmd, sizeof(cmd) - 1, "%s %s %s", build, args, dirpath); @@ -149,7 +149,7 @@ int docker_capable(struct DockerCapabilities *result) { } result->available = true; - if (docker_exec("ps", OMC_DOCKER_QUIET)) { + if (docker_exec("ps", STASIS_DOCKER_QUIET)) { // user cannot connect to the socket return false; } @@ -160,11 +160,11 @@ int docker_capable(struct DockerCapabilities *result) { } guard_free(version); - if (!docker_exec("buildx build --help", OMC_DOCKER_QUIET)) { - result->build |= OMC_DOCKER_BUILD_X; + if (!docker_exec("buildx build --help", STASIS_DOCKER_QUIET)) { + result->build |= STASIS_DOCKER_BUILD_X; } - if (!docker_exec("build --help", OMC_DOCKER_QUIET)) { - result->build |= OMC_DOCKER_BUILD; + if (!docker_exec("build --help", STASIS_DOCKER_QUIET)) { + result->build |= STASIS_DOCKER_BUILD; } if (!result->build) { // can't use docker without a build plugin diff --git a/src/download.c b/src/download.c index cbb617f..1623560 100644 --- a/src/download.c +++ b/src/download.c @@ -17,7 +17,7 @@ long download(char *url, const char *filename, char **errmsg) { long http_code = -1; FILE *fp; char user_agent[20]; - sprintf(user_agent, "omc/%s", VERSION); + sprintf(user_agent, "stasis/%s", VERSION); curl_global_init(CURL_GLOBAL_ALL); c = curl_easy_init(); diff --git a/src/environment.c b/src/environment.c index 824b447..924fbf8 100644 --- a/src/environment.c +++ b/src/environment.c @@ -70,7 +70,7 @@ void runtime_export(RuntimeEnv *env, char **keys) { NULL, }; - char output[OMC_BUFSIZ]; + char output[STASIS_BUFSIZ]; char export_command[7]; // export=6 and setenv=6... convenient char *_sh = getenv("SHELL"); char *sh = path_basename(_sh); @@ -290,9 +290,9 @@ char *runtime_expand_var(RuntimeEnv *env, char *input) { return input; } - expanded = calloc(OMC_BUFSIZ, sizeof(char)); + expanded = calloc(STASIS_BUFSIZ, sizeof(char)); if (expanded == NULL) { - SYSERROR("could not allocate %d bytes for runtime_expand_var buffer", OMC_BUFSIZ); + SYSERROR("could not allocate %d bytes for runtime_expand_var buffer", STASIS_BUFSIZ); return NULL; } diff --git a/src/globals.c b/src/globals.c index 27c8aff..7ed7c3c 100644 --- a/src/globals.c +++ b/src/globals.c @@ -1,29 +1,30 @@ #include <stdlib.h> #include <stdbool.h> -#include "omc.h" +#include "core.h" const char *VERSION = "1.0.0"; const char *AUTHOR = "Joseph Hunkeler"; const char *BANNER = - "---------------------------------------------------------------------\n" -#if defined(OMC_DUMB_TERMINAL) - " OH MY CAL \n" + "------------------------------------------------------------------------\n" +#if defined(STASIS_DUMB_TERMINAL) + " STASIS \n" #else - " ██████╗ ██╗ ██╗ ███╗ ███╗██╗ ██╗ ██████╗ █████╗ ██╗ \n" - "██╔═══██╗██║ ██║ ████╗ ████║╚██╗ ██╔╝ ██╔════╝██╔══██╗██║ \n" - "██║ ██║███████║ ██╔████╔██║ ╚████╔╝ ██║ ███████║██║ \n" - "██║ ██║██╔══██║ ██║╚██╔╝██║ ╚██╔╝ ██║ ██╔══██║██║ \n" - "╚██████╔╝██║ ██║ ██║ ╚═╝ ██║ ██║ ╚██████╗██║ ██║███████╗\n" - " ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝\n" + " _____ _______ _____ _____ _____ \n" + " / ____|__ __|/\\ / ____|_ _|/ ____| \n" + " | (___ | | / \\ | (___ | | | (___ \n" + " \\___ \\ | | / /\\ \\ \\___ \\ | | \\___ \\ \n" + " ____) | | |/ ____ \\ ____) |_| |_ ____) | \n" + " |_____/ |_/_/ \\_\\_____/|_____|_____/ \n" + "\n" #endif - "---------------------------------------------------------------------\n" - " Delivery Generator \n" - " v%s \n" - "---------------------------------------------------------------------\n" + "------------------------------------------------------------------------\n" + " Delivery Generator \n" + " v%s \n" + "------------------------------------------------------------------------\n" "Copyright (C) 2023-2024 %s,\n" "Association of Universities for Research in Astronomy (AURA)\n"; -struct OMC_GLOBAL globals = { +struct STASIS_GLOBAL globals = { .verbose = false, .continue_on_error = false, .always_update_base_environment = false, @@ -2,7 +2,7 @@ #include <stdlib.h> #include <string.h> #include <ctype.h> -#include "omc.h" +#include "core.h" #include "ini.h" struct INIFILE *ini_init() { @@ -114,7 +114,7 @@ struct INIData *ini_getall(struct INIFILE *ini, char *section_name) { int ini_getval(struct INIFILE *ini, char *section_name, char *key, int type, union INIVal *result) { char *token = NULL; - char tbuf[OMC_BUFSIZ]; + char tbuf[STASIS_BUFSIZ]; char *tbufp = tbuf; struct INIData *data; data = ini_data_get(ini, section_name, key); @@ -282,7 +282,7 @@ int ini_write(struct INIFILE *ini, FILE **stream, unsigned mode) { for (size_t x = 0; x < ini->section_count; x++) { fprintf(*stream, "[%s]" LINE_SEP, ini->section[x]->key); for (size_t y = 0; y < ini->section[x]->data_count; y++) { - char outvalue[OMC_BUFSIZ]; + char outvalue[STASIS_BUFSIZ]; memset(outvalue, 0, sizeof(outvalue)); if (ini->section[x]->data[y]->value) { char **parts = split(ini->section[x]->data[y]->value, LINE_SEP, 0); @@ -354,8 +354,8 @@ void ini_free(struct INIFILE **ini) { struct INIFILE *ini_open(const char *filename) { FILE *fp; - char line[OMC_BUFSIZ] = {0}; - char current_section[OMC_BUFSIZ] = {0}; + char line[STASIS_BUFSIZ] = {0}; + char current_section[STASIS_BUFSIZ] = {0}; char reading_value = 0; struct INIFILE *ini = ini_init(); @@ -382,7 +382,7 @@ struct INIFILE *ini_open(const char *filename) { char inikey[2][255]; char *key = inikey[0]; char *key_last = inikey[1]; - char value[OMC_BUFSIZ]; + char value[STASIS_BUFSIZ]; memset(value, 0, sizeof(value)); memset(inikey, 0, sizeof(inikey)); diff --git a/src/recipe.c b/src/recipe.c index 43899b8..e51fde6 100644 --- a/src/recipe.c +++ b/src/recipe.c @@ -20,7 +20,7 @@ int recipe_clone(char *recipe_dir, char *url, char *gitref, char **result) { if (!access(destdir, F_OK)) { if (!strcmp(destdir, "/")) { - fprintf(stderr, "OMC is misconfigured. Please check your output path(s) immediately.\n"); + fprintf(stderr, "STASIS is misconfigured. Please check your output path(s) immediately.\n"); fprintf(stderr, "recipe_dir = '%s'\nreponame = '%s'\ndestdir = '%s'\n", recipe_dir, reponame, destdir); exit(1); diff --git a/src/relocation.c b/src/relocation.c index 586d1ba..a86530d 100644 --- a/src/relocation.c +++ b/src/relocation.c @@ -24,7 +24,7 @@ * @return 0 on success, -1 on error */ int replace_text(char *original, const char *target, const char *replacement, unsigned flags) { - char buffer[OMC_BUFSIZ]; + char buffer[STASIS_BUFSIZ]; char *pos = original; char *match = NULL; size_t original_len = strlen(original); @@ -104,7 +104,7 @@ int replace_text(char *original, const char *target, const char *replacement, un */ int file_replace_text(const char* filename, const char* target, const char* replacement, unsigned flags) { int result; - char buffer[OMC_BUFSIZ]; + char buffer[STASIS_BUFSIZ]; char tempfilename[] = "tempfileXXXXXX"; FILE *fp; FILE *tfp; diff --git a/src/omc_indexer.c b/src/stasis_indexer.c index 971f389..fb231e0 100644 --- a/src/omc_indexer.c +++ b/src/stasis_indexer.c @@ -1,6 +1,6 @@ #include <getopt.h> #include <fnmatch.h> -#include "omc.h" +#include "core.h" static struct option long_options[] = { {"help", no_argument, 0, 'h'}, @@ -26,7 +26,7 @@ static void usage(char *name) { for (int i = 0; i < maxopts; i++) { opts[i] = long_options[i].val; } - printf("usage: %s [-%s] {{OMC_ROOT}...}\n", name, opts); + printf("usage: %s [-%s] {{STASIS_ROOT}...}\n", name, opts); guard_free(opts); for (int i = 0; i < maxopts - 1; i++) { @@ -62,7 +62,7 @@ int indexer_wheels(struct Delivery *ctx) { } int indexer_load_metadata(struct Delivery *ctx, const char *filename) { - char line[OMC_NAME_MAX] = {0}; + char line[STASIS_NAME_MAX] = {0}; FILE *fp; fp = fopen(filename, "r"); @@ -229,7 +229,7 @@ int micromamba(const char *write_to, const char *prefix, char *command, ...) { system(untarcmd); } - char cmd[OMC_BUFSIZ]; + char cmd[STASIS_BUFSIZ]; memset(cmd, 0, sizeof(cmd)); sprintf(cmd, "%s -r %s -p %s ", mmbin, prefix, prefix); va_list args; @@ -615,7 +615,7 @@ int main(int argc, char *argv[]) { } if (!rootdirs || !rootdirs_total) { - fprintf(stderr, "You must specify at least one OMC root directory to index\n"); + fprintf(stderr, "You must specify at least one STASIS root directory to index\n"); exit(1); } else { for (size_t i = 0; i < rootdirs_total; i++) { @@ -634,7 +634,7 @@ int main(int argc, char *argv[]) { } else { strcat(workdir_template, "/tmp"); } - strcat(workdir_template, "/omc-combine.XXXXXX"); + strcat(workdir_template, "/stasis-combine.XXXXXX"); workdir = mkdtemp(workdir_template); if (!workdir) { SYSERROR("Unable to create temporary directory: %s", workdir_template); @@ -651,7 +651,7 @@ int main(int argc, char *argv[]) { indexer_init_dirs(&ctx, workdir); - msg(OMC_MSG_L1, "%s delivery root %s\n", + msg(STASIS_MSG_L1, "%s delivery root %s\n", rootdirs_total > 1 ? "Merging" : "Indexing", rootdirs_total > 1 ? "directories" : "directory"); if (indexer_combine_rootdirs(workdir, rootdirs, rootdirs_total)) { @@ -668,22 +668,22 @@ int main(int argc, char *argv[]) { mkdirs(ctx.storage.wheel_artifact_dir, 0755); } - msg(OMC_MSG_L1, "Indexing conda packages\n"); + msg(STASIS_MSG_L1, "Indexing conda packages\n"); if (indexer_conda(&ctx)) { SYSERROR("%s", "Conda package indexing operation failed"); exit(1); } - msg(OMC_MSG_L1, "Indexing wheel packages\n"); + msg(STASIS_MSG_L1, "Indexing wheel packages\n"); if (indexer_wheels(&ctx)) { SYSERROR("%s", "Python package indexing operation failed"); exit(1); } - msg(OMC_MSG_L1, "Loading metadata\n"); + msg(STASIS_MSG_L1, "Loading metadata\n"); struct StrList *metafiles = NULL; - indexer_get_files(&metafiles, ctx.storage.meta_dir, "*.omc"); - strlist_sort(metafiles, OMC_SORT_LEN_ASCENDING); + indexer_get_files(&metafiles, ctx.storage.meta_dir, "*.stasis"); + strlist_sort(metafiles, STASIS_SORT_LEN_ASCENDING); struct Delivery local[strlist_count(metafiles)]; for (size_t i = 0; i < strlist_count(metafiles); i++) { @@ -698,33 +698,33 @@ int main(int argc, char *argv[]) { indexer_load_metadata(&local[i], path); } - msg(OMC_MSG_L1, "Generating links to latest release iteration\n"); + msg(STASIS_MSG_L1, "Generating links to latest release iteration\n"); if (indexer_symlinks(local, strlist_count(metafiles))) { SYSERROR("%s", "Link generation failed"); exit(1); } - msg(OMC_MSG_L1, "Generating README.md\n"); + msg(STASIS_MSG_L1, "Generating README.md\n"); if (indexer_readmes(local, strlist_count(metafiles))) { SYSERROR("%s", "README indexing operation failed"); exit(1); } - msg(OMC_MSG_L1, "Indexing test results\n"); + msg(STASIS_MSG_L1, "Indexing test results\n"); if (indexer_junitxml_report(local, strlist_count(metafiles))) { SYSERROR("%s", "Test result indexing operation failed"); exit(1); } if (do_html) { - msg(OMC_MSG_L1, "Generating HTML indexes\n"); + msg(STASIS_MSG_L1, "Generating HTML indexes\n"); if (indexer_make_website(local)) { SYSERROR("%s", "Site creation failed"); exit(1); } } - msg(OMC_MSG_L1, "Copying indexed delivery to '%s'\n", destdir); + msg(STASIS_MSG_L1, "Copying indexed delivery to '%s'\n", destdir); char cmd[PATH_MAX]; memset(cmd, 0, sizeof(cmd)); sprintf(cmd, "rsync -ah%s --delete --exclude 'tmp/' --exclude 'tools/' '%s/' '%s/'", globals.verbose ? "v" : "q", workdir, destdir); @@ -740,7 +740,7 @@ int main(int argc, char *argv[]) { exit(1); } - msg(OMC_MSG_L1, "Removing work directory: %s\n", workdir); + msg(STASIS_MSG_L1, "Removing work directory: %s\n", workdir); if (rmtree(workdir)) { SYSERROR("Failed to remove work directory: %s", strerror(errno)); } @@ -748,6 +748,6 @@ int main(int argc, char *argv[]) { guard_strlist_free(&metafiles); delivery_free(&ctx); globals_free(); - msg(OMC_MSG_L1, "Done!\n"); + msg(STASIS_MSG_L1, "Done!\n"); return 0; } diff --git a/src/omc_main.c b/src/stasis_main.c index 90460ee..8b13b98 100644 --- a/src/omc_main.c +++ b/src/stasis_main.c @@ -3,7 +3,7 @@ #include <string.h> #include <limits.h> #include <getopt.h> -#include "omc.h" +#include "core.h" #define OPT_ALWAYS_UPDATE_BASE 1000 #define OPT_NO_DOCKER 1001 @@ -32,7 +32,7 @@ const char *long_options_help[] = { "Override version of Python in configuration", "Increase output verbosity", "Disable line buffering", - "Update conda installation prior to OMC environment creation", + "Update conda installation prior to STASIS environment creation", "Do not build docker images", "Do not upload artifacts to Artifactory", "Do not execute test scripts", @@ -68,7 +68,7 @@ static void usage(char *progname) { int width = get_option_max_width(long_options); for (int x = 0; long_options[x].name != 0; x++) { - char tmp[OMC_NAME_MAX] = {0}; + char tmp[STASIS_NAME_MAX] = {0}; char output[sizeof(tmp)] = {0}; char opt_long[50] = {0}; // --? [ARG]? char opt_short[50] = {0}; // -? [ARG]? @@ -103,10 +103,10 @@ static void check_system_requirements(struct Delivery *ctx) { NULL, }; - msg(OMC_MSG_L1, "Checking system requirements\n"); + msg(STASIS_MSG_L1, "Checking system requirements\n"); for (size_t i = 0; tools_required[i] != NULL; i++) { if (!find_program(tools_required[i])) { - msg(OMC_MSG_L2 | OMC_MSG_ERROR, "'%s' must be installed.\n", tools_required[i]); + msg(STASIS_MSG_L2 | STASIS_MSG_ERROR, "'%s' must be installed.\n", tools_required[i]); exit(1); } } @@ -117,16 +117,16 @@ static void check_system_requirements(struct Delivery *ctx) { struct DockerCapabilities dcap; if (!docker_capable(&dcap)) { - msg(OMC_MSG_L2 | OMC_MSG_WARN, "Docker is broken\n"); - msg(OMC_MSG_L3, "Available: %s\n", dcap.available ? "Yes" : "No"); - msg(OMC_MSG_L3, "Usable: %s\n", dcap.usable ? "Yes" : "No"); - msg(OMC_MSG_L3, "Podman [Docker Emulation]: %s\n", dcap.podman ? "Yes" : "No"); - msg(OMC_MSG_L3, "Build plugin(s): "); + msg(STASIS_MSG_L2 | STASIS_MSG_WARN, "Docker is broken\n"); + msg(STASIS_MSG_L3, "Available: %s\n", dcap.available ? "Yes" : "No"); + msg(STASIS_MSG_L3, "Usable: %s\n", dcap.usable ? "Yes" : "No"); + msg(STASIS_MSG_L3, "Podman [Docker Emulation]: %s\n", dcap.podman ? "Yes" : "No"); + msg(STASIS_MSG_L3, "Build plugin(s): "); if (dcap.usable) { - if (dcap.build & OMC_DOCKER_BUILD) { + if (dcap.build & STASIS_DOCKER_BUILD) { printf("build "); } - if (dcap.build & OMC_DOCKER_BUILD_X) { + if (dcap.build & STASIS_DOCKER_BUILD_X) { printf("buildx "); } puts(""); @@ -146,12 +146,12 @@ int main(int argc, char *argv[]) { .f_stderr = "", .redirect_stderr = 0, }; - char env_name[OMC_NAME_MAX] = {0}; - char env_name_testing[OMC_NAME_MAX] = {0}; + char env_name[STASIS_NAME_MAX] = {0}; + char env_name_testing[STASIS_NAME_MAX] = {0}; char *delivery_input = NULL; char *config_input = NULL; char installer_url[PATH_MAX]; - char python_override_version[OMC_NAME_MAX]; + char python_override_version[STASIS_NAME_MAX]; int user_disabled_docker = false; memset(env_name, 0, sizeof(env_name)); @@ -225,7 +225,7 @@ int main(int argc, char *argv[]) { printf(BANNER, VERSION, AUTHOR); - msg(OMC_MSG_L1, "Setup\n"); + msg(STASIS_MSG_L1, "Setup\n"); // Expose variables for use with the template engine // NOTE: These pointers are populated by delivery_init() so please avoid using @@ -259,18 +259,18 @@ int main(int argc, char *argv[]) { tpl_register("workaround.tox_posargs", &globals.workaround.tox_posargs); // Set up PREFIX/etc directory information - // The user may manipulate the base directory path with OMC_SYSCONFDIR + // The user may manipulate the base directory path with STASIS_SYSCONFDIR // environment variable - char omc_sysconfdir_tmp[PATH_MAX]; - if (getenv("OMC_SYSCONFDIR")) { - strncpy(omc_sysconfdir_tmp, getenv("OMC_SYSCONFDIR"), sizeof(omc_sysconfdir_tmp) - 1); + char stasis_sysconfdir_tmp[PATH_MAX]; + if (getenv("STASIS_SYSCONFDIR")) { + strncpy(stasis_sysconfdir_tmp, getenv("STASIS_SYSCONFDIR"), sizeof(stasis_sysconfdir_tmp) - 1); } else { - strncpy(omc_sysconfdir_tmp, OMC_SYSCONFDIR, sizeof(omc_sysconfdir_tmp) - 1); + strncpy(stasis_sysconfdir_tmp, STASIS_SYSCONFDIR, sizeof(stasis_sysconfdir_tmp) - 1); } - globals.sysconfdir = realpath(omc_sysconfdir_tmp, NULL); + globals.sysconfdir = realpath(stasis_sysconfdir_tmp, NULL); if (!globals.sysconfdir) { - msg(OMC_MSG_ERROR | OMC_MSG_L1, "Unable to resolve path to configuration directory: %s\n", omc_sysconfdir_tmp); + msg(STASIS_MSG_ERROR | STASIS_MSG_L1, "Unable to resolve path to configuration directory: %s\n", stasis_sysconfdir_tmp); exit(1); } @@ -285,49 +285,49 @@ int main(int argc, char *argv[]) { if (!config_input) { // no configuration passed by argument. use basic config. char cfgfile[PATH_MAX * 2]; - sprintf(cfgfile, "%s/%s", globals.sysconfdir, "omc.ini"); + sprintf(cfgfile, "%s/%s", globals.sysconfdir, "stasis.ini"); if (!access(cfgfile, F_OK | R_OK)) { config_input = strdup(cfgfile); } else { - msg(OMC_MSG_WARN, "OMC global configuration is not readable, or does not exist: %s", cfgfile); + msg(STASIS_MSG_WARN, "STASIS global configuration is not readable, or does not exist: %s", cfgfile); } } if (config_input) { - msg(OMC_MSG_L2, "Reading OMC global configuration: %s\n", config_input); - ctx._omc_ini_fp.cfg = ini_open(config_input); - if (!ctx._omc_ini_fp.cfg) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Failed to read config file: %s, %s\n", delivery_input, strerror(errno)); + msg(STASIS_MSG_L2, "Reading STASIS global configuration: %s\n", config_input); + ctx._stasis_ini_fp.cfg = ini_open(config_input); + if (!ctx._stasis_ini_fp.cfg) { + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Failed to read config file: %s, %s\n", delivery_input, strerror(errno)); exit(1); } - ctx._omc_ini_fp.cfg_path = strdup(config_input); + ctx._stasis_ini_fp.cfg_path = strdup(config_input); guard_free(config_input); } - msg(OMC_MSG_L2, "Reading OMC delivery configuration: %s\n", delivery_input); - ctx._omc_ini_fp.delivery = ini_open(delivery_input); - if (!ctx._omc_ini_fp.delivery) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Failed to read delivery file: %s, %s\n", delivery_input, strerror(errno)); + msg(STASIS_MSG_L2, "Reading STASIS delivery configuration: %s\n", delivery_input); + ctx._stasis_ini_fp.delivery = ini_open(delivery_input); + if (!ctx._stasis_ini_fp.delivery) { + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Failed to read delivery file: %s, %s\n", delivery_input, strerror(errno)); exit(1); } - ctx._omc_ini_fp.delivery_path = strdup(delivery_input); + ctx._stasis_ini_fp.delivery_path = strdup(delivery_input); - msg(OMC_MSG_L2, "Bootstrapping delivery context\n"); + msg(STASIS_MSG_L2, "Bootstrapping delivery context\n"); if (bootstrap_build_info(&ctx)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Failed to bootstrap delivery context\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Failed to bootstrap delivery context\n"); exit(1); } - msg(OMC_MSG_L2, "Initializing delivery context\n"); + msg(STASIS_MSG_L2, "Initializing delivery context\n"); if (delivery_init(&ctx)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Failed to initialize delivery context\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Failed to initialize delivery context\n"); exit(1); } check_system_requirements(&ctx); - msg(OMC_MSG_L2, "Configuring JFrog CLI\n"); + msg(STASIS_MSG_L2, "Configuring JFrog CLI\n"); if (delivery_init_artifactory(&ctx)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "JFrog CLI configuration failed\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "JFrog CLI configuration failed\n"); exit(1); } @@ -336,7 +336,7 @@ int main(int argc, char *argv[]) { strcpy(env_name_testing, env_name); strcat(env_name_testing, "-test"); - msg(OMC_MSG_L1, "Overview\n"); + msg(STASIS_MSG_L1, "Overview\n"); delivery_meta_show(&ctx); delivery_conda_show(&ctx); delivery_tests_show(&ctx); @@ -344,11 +344,11 @@ int main(int argc, char *argv[]) { //delivery_runtime_show(&ctx); } - msg(OMC_MSG_L1, "Conda setup\n"); + msg(STASIS_MSG_L1, "Conda setup\n"); delivery_get_installer_url(&ctx, installer_url); - msg(OMC_MSG_L2, "Downloading: %s\n", installer_url); + msg(STASIS_MSG_L2, "Downloading: %s\n", installer_url); if (delivery_get_installer(&ctx, installer_url)) { - msg(OMC_MSG_ERROR, "download failed: %s\n", installer_url); + msg(STASIS_MSG_ERROR, "download failed: %s\n", installer_url); exit(1); } @@ -360,57 +360,57 @@ int main(int argc, char *argv[]) { exit(1); } - msg(OMC_MSG_L2, "Installing: %s\n", ctx.conda.installer_name); + msg(STASIS_MSG_L2, "Installing: %s\n", ctx.conda.installer_name); delivery_install_conda(ctx.conda.installer_path, ctx.storage.conda_install_prefix); - msg(OMC_MSG_L2, "Configuring: %s\n", ctx.storage.conda_install_prefix); + msg(STASIS_MSG_L2, "Configuring: %s\n", ctx.storage.conda_install_prefix); delivery_conda_enable(&ctx, ctx.storage.conda_install_prefix); char *pathvar = NULL; pathvar = getenv("PATH"); if (!pathvar) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "PATH variable is not set. Cannot continue.\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "PATH variable is not set. Cannot continue.\n"); exit(1); } else { - char pathvar_tmp[OMC_BUFSIZ]; + char pathvar_tmp[STASIS_BUFSIZ]; sprintf(pathvar_tmp, "%s/bin:%s", ctx.storage.conda_install_prefix, pathvar); setenv("PATH", pathvar_tmp, 1); pathvar = NULL; } - msg(OMC_MSG_L1, "Creating release environment(s)\n"); + msg(STASIS_MSG_L1, "Creating release environment(s)\n"); if (ctx.meta.based_on && strlen(ctx.meta.based_on)) { if (conda_env_remove(env_name)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "failed to remove release environment: %s\n", env_name_testing); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "failed to remove release environment: %s\n", env_name_testing); exit(1); } - msg(OMC_MSG_L2, "Based on release: %s\n", ctx.meta.based_on); + msg(STASIS_MSG_L2, "Based on release: %s\n", ctx.meta.based_on); if (conda_env_create_from_uri(env_name, ctx.meta.based_on)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "unable to install release environment using configuration file\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "unable to install release environment using configuration file\n"); exit(1); } if (conda_env_remove(env_name_testing)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "failed to remove testing environment\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "failed to remove testing environment\n"); exit(1); } if (conda_env_create_from_uri(env_name_testing, ctx.meta.based_on)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "unable to install testing environment using configuration file\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "unable to install testing environment using configuration file\n"); exit(1); } } else { if (conda_env_create(env_name, ctx.meta.python, NULL)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "failed to create release environment\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "failed to create release environment\n"); exit(1); } if (conda_env_create(env_name_testing, ctx.meta.python, NULL)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "failed to create release environment\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "failed to create release environment\n"); exit(1); } } // Activate test environment - msg(OMC_MSG_L1, "Activating test environment\n"); + msg(STASIS_MSG_L1, "Activating test environment\n"); if (conda_activate(ctx.storage.conda_install_prefix, env_name_testing)) { fprintf(stderr, "failed to activate test environment\n"); exit(1); @@ -418,44 +418,44 @@ int main(int argc, char *argv[]) { delivery_gather_tool_versions(&ctx); if (!ctx.conda.tool_version) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Could not determine conda version\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Could not determine conda version\n"); exit(1); } if (!ctx.conda.tool_build_version) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "Could not determine conda-build version\n"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Could not determine conda-build version\n"); exit(1); } if (pip_exec("install build")) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "'build' tool installation failed"); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "'build' tool installation failed"); exit(1); } // Execute configuration-defined tests if (globals.enable_testing) { - msg(OMC_MSG_L1, "Begin test execution\n"); + msg(STASIS_MSG_L1, "Begin test execution\n"); delivery_tests_run(&ctx); - msg(OMC_MSG_L1, "Rewriting test results\n"); + msg(STASIS_MSG_L1, "Rewriting test results\n"); delivery_fixup_test_results(&ctx); } else { - msg(OMC_MSG_L1 | OMC_MSG_WARN, "Test execution is disabled\n"); + msg(STASIS_MSG_L1 | STASIS_MSG_WARN, "Test execution is disabled\n"); } - msg(OMC_MSG_L1, "Generating deferred package listing\n"); + msg(STASIS_MSG_L1, "Generating deferred package listing\n"); // Test succeeded so move on to producing package artifacts delivery_defer_packages(&ctx, DEFER_CONDA); delivery_defer_packages(&ctx, DEFER_PIP); if (ctx.conda.conda_packages_defer && strlist_count(ctx.conda.conda_packages_defer)) { - msg(OMC_MSG_L2, "Building Conda recipe(s)\n"); + msg(STASIS_MSG_L2, "Building Conda recipe(s)\n"); if (delivery_build_recipes(&ctx)) { exit(1); } - msg(OMC_MSG_L3, "Copying artifacts\n"); + msg(STASIS_MSG_L3, "Copying artifacts\n"); if (delivery_copy_conda_artifacts(&ctx)) { exit(1); } - msg(OMC_MSG_L3, "Indexing artifacts\n"); + msg(STASIS_MSG_L3, "Indexing artifacts\n"); if (delivery_index_conda_artifacts(&ctx)) { exit(1); } @@ -472,23 +472,23 @@ int main(int argc, char *argv[]) { } // Populate the release environment - msg(OMC_MSG_L1, "Populating release environment\n"); - msg(OMC_MSG_L2, "Installing conda packages\n"); + msg(STASIS_MSG_L1, "Populating release environment\n"); + msg(STASIS_MSG_L2, "Installing conda packages\n"); if (strlist_count(ctx.conda.conda_packages)) { if (delivery_install_packages(&ctx, ctx.storage.conda_install_prefix, env_name, INSTALL_PKG_CONDA, (struct StrList *[]) {ctx.conda.conda_packages, NULL})) { exit(1); } } if (strlist_count(ctx.conda.conda_packages_defer)) { - msg(OMC_MSG_L3, "Installing deferred conda packages\n"); + msg(STASIS_MSG_L3, "Installing deferred conda packages\n"); if (delivery_install_packages(&ctx, ctx.storage.conda_install_prefix, env_name, INSTALL_PKG_CONDA | INSTALL_PKG_CONDA_DEFERRED, (struct StrList *[]) {ctx.conda.conda_packages_defer, NULL})) { exit(1); } } else { - msg(OMC_MSG_L3, "No deferred conda packages\n"); + msg(STASIS_MSG_L3, "No deferred conda packages\n"); } - msg(OMC_MSG_L2, "Installing pip packages\n"); + msg(STASIS_MSG_L2, "Installing pip packages\n"); if (strlist_count(ctx.conda.pip_packages)) { if (delivery_install_packages(&ctx, ctx.storage.conda_install_prefix, env_name, INSTALL_PKG_PIP, (struct StrList *[]) {ctx.conda.pip_packages, NULL})) { exit(1); @@ -496,37 +496,37 @@ int main(int argc, char *argv[]) { } if (strlist_count(ctx.conda.pip_packages_defer)) { - msg(OMC_MSG_L3, "Installing deferred pip packages\n"); + msg(STASIS_MSG_L3, "Installing deferred pip packages\n"); if (delivery_install_packages(&ctx, ctx.storage.conda_install_prefix, env_name, INSTALL_PKG_PIP | INSTALL_PKG_PIP_DEFERRED, (struct StrList *[]) {ctx.conda.pip_packages_defer, NULL})) { exit(1); } } else { - msg(OMC_MSG_L3, "No deferred pip packages\n"); + msg(STASIS_MSG_L3, "No deferred pip packages\n"); } conda_exec("list"); - msg(OMC_MSG_L1, "Creating release\n"); - msg(OMC_MSG_L2, "Exporting delivery configuration\n"); + msg(STASIS_MSG_L1, "Creating release\n"); + msg(STASIS_MSG_L2, "Exporting delivery configuration\n"); if (!pushd(ctx.storage.cfgdump_dir)) { char filename[PATH_MAX] = {0}; sprintf(filename, "%s.ini", ctx.info.release_name); FILE *spec = fopen(filename, "w+"); if (!spec) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "failed %s\n", filename); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "failed %s\n", filename); exit(1); } - ini_write(ctx._omc_ini_fp.delivery, &spec, INI_WRITE_RAW); + ini_write(ctx._stasis_ini_fp.delivery, &spec, INI_WRITE_RAW); fclose(spec); memset(filename, 0, sizeof(filename)); sprintf(filename, "%s-rendered.ini", ctx.info.release_name); spec = fopen(filename, "w+"); if (!spec) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "failed %s\n", filename); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "failed %s\n", filename); exit(1); } - ini_write(ctx._omc_ini_fp.delivery, &spec, INI_WRITE_PRESERVE); + ini_write(ctx._stasis_ini_fp.delivery, &spec, INI_WRITE_PRESERVE); fclose(spec); popd(); } else { @@ -534,79 +534,79 @@ int main(int argc, char *argv[]) { exit(1); } - msg(OMC_MSG_L2, "Exporting %s\n", env_name_testing); + msg(STASIS_MSG_L2, "Exporting %s\n", env_name_testing); if (conda_env_export(env_name_testing, ctx.storage.delivery_dir, env_name_testing)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "failed %s\n", env_name_testing); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "failed %s\n", env_name_testing); exit(1); } - msg(OMC_MSG_L2, "Exporting %s\n", env_name); + msg(STASIS_MSG_L2, "Exporting %s\n", env_name); if (conda_env_export(env_name, ctx.storage.delivery_dir, env_name)) { - msg(OMC_MSG_ERROR | OMC_MSG_L2, "failed %s\n", env_name); + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "failed %s\n", env_name); exit(1); } // Rewrite release environment output (i.e. set package origin(s) to point to the deployment server, etc.) char specfile[PATH_MAX]; sprintf(specfile, "%s/%s.yml", ctx.storage.delivery_dir, env_name); - msg(OMC_MSG_L3, "Rewriting release spec file (stage 1): %s\n", path_basename(specfile)); + msg(STASIS_MSG_L3, "Rewriting release spec file (stage 1): %s\n", path_basename(specfile)); delivery_rewrite_spec(&ctx, specfile, DELIVERY_REWRITE_SPEC_STAGE_1); - msg(OMC_MSG_L1, "Rendering mission templates\n"); + msg(STASIS_MSG_L1, "Rendering mission templates\n"); delivery_mission_render_files(&ctx); - int want_docker = ini_section_search(&ctx._omc_ini_fp.delivery, INI_SEARCH_BEGINS, "deploy:docker") ? true : false; - int want_artifactory = ini_section_search(&ctx._omc_ini_fp.delivery, INI_SEARCH_BEGINS, "deploy:artifactory") ? true : false; + int want_docker = ini_section_search(&ctx._stasis_ini_fp.delivery, INI_SEARCH_BEGINS, "deploy:docker") ? true : false; + int want_artifactory = ini_section_search(&ctx._stasis_ini_fp.delivery, INI_SEARCH_BEGINS, "deploy:artifactory") ? true : false; if (want_docker) { if (user_disabled_docker) { - msg(OMC_MSG_L1 | OMC_MSG_WARN, "Docker image building is disabled by CLI argument\n"); + msg(STASIS_MSG_L1 | STASIS_MSG_WARN, "Docker image building is disabled by CLI argument\n"); } else { char dockerfile[PATH_MAX] = {0}; sprintf(dockerfile, "%s/%s", ctx.storage.build_docker_dir, "Dockerfile"); if (globals.enable_docker) { if (!access(dockerfile, F_OK)) { - msg(OMC_MSG_L1, "Building Docker image\n"); + msg(STASIS_MSG_L1, "Building Docker image\n"); if (delivery_docker(&ctx)) { - msg(OMC_MSG_L1 | OMC_MSG_ERROR, "Failed to build docker image!\n"); + msg(STASIS_MSG_L1 | STASIS_MSG_ERROR, "Failed to build docker image!\n"); COE_CHECK_ABORT(1, "Failed to build docker image"); } } else { - msg(OMC_MSG_L1 | OMC_MSG_WARN, "Docker image building is disabled. No Dockerfile found in %s\n", ctx.storage.build_docker_dir); + msg(STASIS_MSG_L1 | STASIS_MSG_WARN, "Docker image building is disabled. No Dockerfile found in %s\n", ctx.storage.build_docker_dir); } } else { - msg(OMC_MSG_L1 | OMC_MSG_WARN, "Docker image building is disabled. System configuration error\n"); + msg(STASIS_MSG_L1 | STASIS_MSG_WARN, "Docker image building is disabled. System configuration error\n"); } } } else { - msg(OMC_MSG_L1 | OMC_MSG_WARN, "Docker image building is disabled. deploy:docker is not configured\n"); + msg(STASIS_MSG_L1 | STASIS_MSG_WARN, "Docker image building is disabled. deploy:docker is not configured\n"); } - msg(OMC_MSG_L3, "Rewriting release spec file (stage 2): %s\n", path_basename(specfile)); + msg(STASIS_MSG_L3, "Rewriting release spec file (stage 2): %s\n", path_basename(specfile)); delivery_rewrite_spec(&ctx, specfile, DELIVERY_REWRITE_SPEC_STAGE_2); - msg(OMC_MSG_L1, "Dumping metadata\n"); + msg(STASIS_MSG_L1, "Dumping metadata\n"); if (delivery_dump_metadata(&ctx)) { - msg(OMC_MSG_L1 | OMC_MSG_ERROR, "Metadata dump failed\n"); + msg(STASIS_MSG_L1 | STASIS_MSG_ERROR, "Metadata dump failed\n"); } if (want_artifactory) { if (globals.enable_artifactory) { - msg(OMC_MSG_L1, "Uploading artifacts\n"); + msg(STASIS_MSG_L1, "Uploading artifacts\n"); delivery_artifact_upload(&ctx); } else { - msg(OMC_MSG_L1 | OMC_MSG_WARN, "Artifact uploading is disabled\n"); + msg(STASIS_MSG_L1 | STASIS_MSG_WARN, "Artifact uploading is disabled\n"); } } else { - msg(OMC_MSG_L1 | OMC_MSG_WARN, "Artifact uploading is disabled. deploy:artifactory is not configured\n"); + msg(STASIS_MSG_L1 | STASIS_MSG_WARN, "Artifact uploading is disabled. deploy:artifactory is not configured\n"); } - msg(OMC_MSG_L1, "Cleaning up\n"); + msg(STASIS_MSG_L1, "Cleaning up\n"); delivery_free(&ctx); globals_free(); tpl_free(); - msg(OMC_MSG_L1, "Done!\n"); + msg(STASIS_MSG_L1, "Done!\n"); return 0; } @@ -115,7 +115,7 @@ char** split(char *_sptr, const char* delim, size_t max) pos = token - sptr; break; } - result[i] = calloc(OMC_BUFSIZ, sizeof(char)); + result[i] = calloc(STASIS_BUFSIZ, sizeof(char)); if (!result[i]) { return NULL; } @@ -125,7 +125,7 @@ char** split(char *_sptr, const char* delim, size_t max) // pos is non-zero when maximum split is reached if (pos) { // append the remaining string contents to array - result[i] = calloc(OMC_BUFSIZ, sizeof(char)); + result[i] = calloc(STASIS_BUFSIZ, sizeof(char)); if (!result[i]) { return NULL; } @@ -319,13 +319,13 @@ void strsort(char **arr, unsigned int sort_mode) { // Default mode is alphabetic sort compar fn = _strsort_alpha_compare; - if (sort_mode == OMC_SORT_LEN_DESCENDING) { + if (sort_mode == STASIS_SORT_LEN_DESCENDING) { fn = _strsort_dsc_compare; - } else if (sort_mode == OMC_SORT_LEN_ASCENDING) { + } else if (sort_mode == STASIS_SORT_LEN_ASCENDING) { fn = _strsort_asc_compare; - } else if (sort_mode == OMC_SORT_ALPHA) { + } else if (sort_mode == STASIS_SORT_ALPHA) { fn = _strsort_alpha_compare; // ^ still selectable though ^ - } else if (sort_mode == OMC_SORT_NUMERIC) { + } else if (sort_mode == STASIS_SORT_NUMERIC) { fn = _strsort_numeric_compare; } diff --git a/src/system.c b/src/system.c index d5e77ce..526f0ec 100644 --- a/src/system.c +++ b/src/system.c @@ -1,5 +1,5 @@ #include "system.h" -#include "omc.h" +#include "core.h" int shell(struct Process *proc, char *args) { struct Process selfproc; @@ -106,7 +106,7 @@ int shell_safe(struct Process *proc, char *args) { char buf[1024] = {0}; int result; - char *invalid_ch = strpbrk(args, OMC_SHELL_SAFE_RESTRICT); + char *invalid_ch = strpbrk(args, STASIS_SHELL_SAFE_RESTRICT); if (invalid_ch) { args = NULL; } @@ -138,10 +138,10 @@ int shell_safe(struct Process *proc, char *args) { } char *shell_output(const char *command, int *status) { - const size_t initial_size = OMC_BUFSIZ; + const size_t initial_size = STASIS_BUFSIZ; size_t current_size = initial_size; char *result = NULL; - char line[OMC_BUFSIZ]; + char line[STASIS_BUFSIZ]; FILE *pp; errno = 0; diff --git a/src/template.c b/src/template.c index 0a57232..819fe92 100644 --- a/src/template.c +++ b/src/template.c @@ -216,7 +216,7 @@ char *tpl_render(char *str) { char *env_val = getenv(key); value = strdup(env_val ? env_val : ""); } else if (do_func) { // {{ func:NAME(a, ...) }} - char func_name_temp[OMC_NAME_MAX] = {0}; + char func_name_temp[STASIS_NAME_MAX] = {0}; strcpy(func_name_temp, type_stop + 1); char *param_begin = strchr(func_name_temp, '('); if (!param_begin) { diff --git a/src/utils.c b/src/utils.c index 86622ad..fb22f59 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,7 +1,7 @@ #include <stdarg.h> -#include "omc.h" +#include "core.h" -char *dirstack[OMC_DIRSTACK_MAX]; +char *dirstack[STASIS_DIRSTACK_MAX]; const ssize_t dirstack_max = sizeof(dirstack) / sizeof(dirstack[0]); ssize_t dirstack_len = 0; @@ -186,8 +186,8 @@ char **file_readlines(const char *filename, size_t start, size_t limit, ReaderFn } // Allocate buffer - if ((buffer = calloc(OMC_BUFSIZ, sizeof(char))) == NULL) { - SYSERROR("unable to allocate %d bytes for buffer", OMC_BUFSIZ); + if ((buffer = calloc(STASIS_BUFSIZ, sizeof(char))) == NULL) { + SYSERROR("unable to allocate %d bytes for buffer", STASIS_BUFSIZ); if (!use_stdin) { fclose(fp); } @@ -195,7 +195,7 @@ char **file_readlines(const char *filename, size_t start, size_t limit, ReaderFn } // count number the of lines in the file - while ((fgets(buffer, OMC_BUFSIZ - 1, fp)) != NULL) { + while ((fgets(buffer, STASIS_BUFSIZ - 1, fp)) != NULL) { lines++; } @@ -232,7 +232,7 @@ char **file_readlines(const char *filename, size_t start, size_t limit, ReaderFn continue; } - if (fgets(buffer, OMC_BUFSIZ - 1, fp) == NULL) { + if (fgets(buffer, STASIS_BUFSIZ - 1, fp) == NULL) { break; } @@ -249,7 +249,7 @@ char **file_readlines(const char *filename, size_t start, size_t limit, ReaderFn } } result[i] = strdup(buffer); - memset(buffer, '\0', OMC_BUFSIZ); + memset(buffer, '\0', STASIS_BUFSIZ); } guard_free(buffer); @@ -396,12 +396,12 @@ void msg(unsigned type, char *fmt, ...) { char header[255]; char status[20]; - if (type & OMC_MSG_NOP) { + if (type & STASIS_MSG_NOP) { // quiet mode return; } - if (!globals.verbose && type & OMC_MSG_RESTRICT) { + if (!globals.verbose && type & STASIS_MSG_RESTRICT) { // Verbose mode is not active return; } @@ -413,39 +413,39 @@ void msg(unsigned type, char *fmt, ...) { va_start(args, fmt); stream = stdout; - fprintf(stream, "%s", OMC_COLOR_RESET); - if (type & OMC_MSG_ERROR) { + fprintf(stream, "%s", STASIS_COLOR_RESET); + if (type & STASIS_MSG_ERROR) { // for error output stream = stderr; - fprintf(stream, "%s", OMC_COLOR_RED); + fprintf(stream, "%s", STASIS_COLOR_RED); strcpy(status, " ERROR: "); - } else if (type & OMC_MSG_WARN) { + } else if (type & STASIS_MSG_WARN) { stream = stderr; - fprintf(stream, "%s", OMC_COLOR_YELLOW); + fprintf(stream, "%s", STASIS_COLOR_YELLOW); strcpy(status, " WARNING: "); } else { - fprintf(stream, "%s", OMC_COLOR_GREEN); + fprintf(stream, "%s", STASIS_COLOR_GREEN); strcpy(status, " "); } - if (type & OMC_MSG_L1) { - sprintf(header, "==>%s" OMC_COLOR_RESET OMC_COLOR_WHITE, status); - } else if (type & OMC_MSG_L2) { - sprintf(header, " ->%s" OMC_COLOR_RESET, status); - } else if (type & OMC_MSG_L3) { - sprintf(header, OMC_COLOR_BLUE " ->%s" OMC_COLOR_RESET, status); + if (type & STASIS_MSG_L1) { + sprintf(header, "==>%s" STASIS_COLOR_RESET STASIS_COLOR_WHITE, status); + } else if (type & STASIS_MSG_L2) { + sprintf(header, " ->%s" STASIS_COLOR_RESET, status); + } else if (type & STASIS_MSG_L3) { + sprintf(header, STASIS_COLOR_BLUE " ->%s" STASIS_COLOR_RESET, status); } fprintf(stream, "%s", header); vfprintf(stream, fmt, args); - fprintf(stream, "%s", OMC_COLOR_RESET); + fprintf(stream, "%s", STASIS_COLOR_RESET); va_end(args); } void debug_shell() { - msg(OMC_MSG_L1 | OMC_MSG_WARN, "ENTERING OMC DEBUG SHELL\n" OMC_COLOR_RESET); - system("/bin/bash -c 'PS1=\"(OMC DEBUG) \\W $ \" bash --norc --noprofile'"); - msg(OMC_MSG_L1 | OMC_MSG_WARN, "EXITING OMC DEBUG SHELL\n" OMC_COLOR_RESET); + msg(STASIS_MSG_L1 | STASIS_MSG_WARN, "ENTERING STASIS DEBUG SHELL\n" STASIS_COLOR_RESET); + system("/bin/bash -c 'PS1=\"(STASIS DEBUG) \\W $ \" bash --norc --noprofile'"); + msg(STASIS_MSG_L1 | STASIS_MSG_WARN, "EXITING STASIS DEBUG SHELL\n" STASIS_COLOR_RESET); exit(255); } @@ -460,7 +460,7 @@ char *xmkstemp(FILE **fp, const char *mode) { strcpy(tmpdir, "/tmp"); } memset(t_name, 0, sizeof(t_name)); - sprintf(t_name, "%s/%s", tmpdir, "OMC.XXXXXX"); + sprintf(t_name, "%s/%s", tmpdir, "STASIS.XXXXXX"); fd = mkstemp(t_name); *fp = fdopen(fd, mode); @@ -10,7 +10,7 @@ always_update_base_environment = false conda_fresh_start = true ; (string) Install conda in a custom prefix -; DEFAULT: Conda will be installed under omc/conda +; DEFAULT: Conda will be installed under stasis/conda ; NOTE: conda_fresh_start will automatically be set to "false" ;conda_install_prefix = /path/to/conda diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 5b45d58..f3a45e8 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -21,7 +21,7 @@ foreach(file ${files}) elseif (CMAKE_C_COMPILER_ID STREQUAL "MSVC") target_compile_options(${file_without_ext} PRIVATE ${win_cflags} ${win_msvc_cflags}) endif() - target_link_libraries(${file_without_ext} PRIVATE ohmycal) + target_link_libraries(${file_without_ext} PRIVATE stasis_core) add_test(${file_without_ext} ${file_without_ext}) set_tests_properties(${file_without_ext} PROPERTIES diff --git a/tests/test_docker.c b/tests/test_docker.c index eac385e..04a73aa 100644 --- a/tests/test_docker.c +++ b/tests/test_docker.c @@ -4,16 +4,16 @@ struct DockerCapabilities cap_suite; void test_docker_capable() { struct DockerCapabilities cap; int result = docker_capable(&cap); - OMC_ASSERT(result == true, "docker installation unusable"); - OMC_ASSERT(cap.available, "docker is not available"); - OMC_ASSERT(cap.build != 0, "docker cannot build images"); + STASIS_ASSERT(result == true, "docker installation unusable"); + STASIS_ASSERT(cap.available, "docker is not available"); + STASIS_ASSERT(cap.build != 0, "docker cannot build images"); // no cap.podman assertion. doesn't matter if we have docker or podman - OMC_ASSERT(cap.usable, "docker is unusable"); + STASIS_ASSERT(cap.usable, "docker is unusable"); } void test_docker_exec() { - OMC_ASSERT(docker_exec("system info", 0) == 0, "unable to print docker information"); - OMC_ASSERT(docker_exec("system info", OMC_DOCKER_QUIET) == 0, "unable to be quiet"); + STASIS_ASSERT(docker_exec("system info", 0) == 0, "unable to print docker information"); + STASIS_ASSERT(docker_exec("system info", STASIS_DOCKER_QUIET) == 0, "unable to be quiet"); } void test_docker_sanitize_tag() { @@ -27,47 +27,47 @@ void test_docker_sanitize_tag() { break; } } - OMC_ASSERT(result == 0, "proper tag characters were not replaced correctly"); + STASIS_ASSERT(result == 0, "proper tag characters were not replaced correctly"); guard_free(input); } void test_docker_build_and_script_and_save() { - OMC_SKIP_IF(docker_exec("pull alpine:latest", OMC_DOCKER_QUIET), "unable to pull an image"); + STASIS_SKIP_IF(docker_exec("pull alpine:latest", STASIS_DOCKER_QUIET), "unable to pull an image"); const char *dockerfile_contents = "FROM alpine:latest\nCMD [\"sh\", \"-l\"]\n"; mkdir("test_docker_build", 0755); if (!pushd("test_docker_build")) { - omc_testing_write_ascii("Dockerfile", dockerfile_contents); - OMC_ASSERT(docker_build(".", "-t test_docker_build", cap_suite.build) == 0, "docker build test failed"); - OMC_ASSERT(docker_script("test_docker_build", "uname -a", 0) == 0, "simple docker container script execution failed"); - OMC_ASSERT(docker_save("test_docker_build", ".", OMC_DOCKER_IMAGE_COMPRESSION) == 0, "saving a simple image failed"); - OMC_ASSERT(docker_exec("load < test_docker_build.tar.*", 0) == 0, "loading a simple image failed"); + stasis_testing_write_ascii("Dockerfile", dockerfile_contents); + STASIS_ASSERT(docker_build(".", "-t test_docker_build", cap_suite.build) == 0, "docker build test failed"); + STASIS_ASSERT(docker_script("test_docker_build", "uname -a", 0) == 0, "simple docker container script execution failed"); + STASIS_ASSERT(docker_save("test_docker_build", ".", STASIS_DOCKER_IMAGE_COMPRESSION) == 0, "saving a simple image failed"); + STASIS_ASSERT(docker_exec("load < test_docker_build.tar.*", 0) == 0, "loading a simple image failed"); docker_exec("image rm -f test_docker_build", 0); remove("Dockerfile"); popd(); remove("test_docker_build"); } else { - OMC_ASSERT(false, "dir change failed"); + STASIS_ASSERT(false, "dir change failed"); return; } } void test_docker_validate_compression_program() { - OMC_ASSERT(docker_validate_compression_program(OMC_DOCKER_IMAGE_COMPRESSION) == 0, "baked-in compression program does not exist"); + STASIS_ASSERT(docker_validate_compression_program(STASIS_DOCKER_IMAGE_COMPRESSION) == 0, "baked-in compression program does not exist"); } int main(int argc, char *argv[]) { - OMC_TEST_BEGIN_MAIN(); + STASIS_TEST_BEGIN_MAIN(); if (!docker_capable(&cap_suite)) { - return OMC_TEST_SUITE_SKIP; + return STASIS_TEST_SUITE_SKIP; } - OMC_TEST_FUNC *tests[] = { + STASIS_TEST_FUNC *tests[] = { test_docker_capable, test_docker_exec, test_docker_build_and_script_and_save, test_docker_sanitize_tag, test_docker_validate_compression_program, }; - OMC_TEST_RUN(tests); - OMC_TEST_END_MAIN(); + STASIS_TEST_RUN(tests); + STASIS_TEST_END_MAIN(); }
\ No newline at end of file diff --git a/tests/test_ini.c b/tests/test_ini.c index f9f8234..5958cfd 100644 --- a/tests/test_ini.c +++ b/tests/test_ini.c @@ -4,22 +4,22 @@ void test_ini_open_empty() { struct INIFILE *ini; ini = ini_open("/dev/null"); - OMC_ASSERT(ini->section_count == 1, "should have at least one section pre-allocated"); - OMC_ASSERT(ini->section != NULL, "default section not present"); + STASIS_ASSERT(ini->section_count == 1, "should have at least one section pre-allocated"); + STASIS_ASSERT(ini->section != NULL, "default section not present"); ini_free(&ini); - OMC_ASSERT(ini == NULL, "ini_free did not set pointer argument to NULL"); + STASIS_ASSERT(ini == NULL, "ini_free did not set pointer argument to NULL"); } void test_ini_open() { const char *filename = "ini_open.ini"; const char *data = "[default]\na=1\nb=2\nc=3\n[section name]test=true\n"; struct INIFILE *ini; - omc_testing_write_ascii(filename, data); + stasis_testing_write_ascii(filename, data); ini = ini_open(filename); - OMC_ASSERT(ini->section_count == 2, "should have two sections"); - OMC_ASSERT(ini->section != NULL, "sections are not allocated"); + STASIS_ASSERT(ini->section_count == 2, "should have two sections"); + STASIS_ASSERT(ini->section != NULL, "sections are not allocated"); ini_free(&ini); - OMC_ASSERT(ini == NULL, "ini_free did not set pointer argument to NULL"); + STASIS_ASSERT(ini == NULL, "ini_free did not set pointer argument to NULL"); remove(filename); } @@ -29,27 +29,27 @@ void test_ini_section_search() { struct INIFILE *ini; struct INISection *section; - omc_testing_write_ascii(filename, data); + stasis_testing_write_ascii(filename, data); ini = ini_open(filename); section = ini_section_search(&ini, INI_SEARCH_BEGINS, "section"); - OMC_ASSERT(section->data_count == 1, "should have one data variable"); - OMC_ASSERT(strcmp(section->data[0]->key, "test") == 0, "should have one data variable named 'test'"); - OMC_ASSERT(strcmp(section->data[0]->value, "true") == 0, "'test' should be equal to 'true'"); - OMC_ASSERT(strcmp(section->key, "section name here") == 0, "defined section not found"); + STASIS_ASSERT(section->data_count == 1, "should have one data variable"); + STASIS_ASSERT(strcmp(section->data[0]->key, "test") == 0, "should have one data variable named 'test'"); + STASIS_ASSERT(strcmp(section->data[0]->value, "true") == 0, "'test' should be equal to 'true'"); + STASIS_ASSERT(strcmp(section->key, "section name here") == 0, "defined section not found"); section = ini_section_search(&ini, INI_SEARCH_SUBSTR, "name"); - OMC_ASSERT(strcmp(section->data[0]->key, "test") == 0, "should have one data variable named 'test'"); - OMC_ASSERT(strcmp(section->data[0]->value, "true") == 0, "'test' should be equal to 'true'"); - OMC_ASSERT(strcmp(section->key, "section name here") == 0, "defined section not found"); + STASIS_ASSERT(strcmp(section->data[0]->key, "test") == 0, "should have one data variable named 'test'"); + STASIS_ASSERT(strcmp(section->data[0]->value, "true") == 0, "'test' should be equal to 'true'"); + STASIS_ASSERT(strcmp(section->key, "section name here") == 0, "defined section not found"); section = ini_section_search(&ini, INI_SEARCH_EXACT, "section name here"); - OMC_ASSERT(strcmp(section->data[0]->key, "test") == 0, "should have one data variable named 'test'"); - OMC_ASSERT(strcmp(section->data[0]->value, "true") == 0, "'test' should be equal to 'true'"); - OMC_ASSERT(strcmp(section->key, "section name here") == 0, "defined section not found"); + STASIS_ASSERT(strcmp(section->data[0]->key, "test") == 0, "should have one data variable named 'test'"); + STASIS_ASSERT(strcmp(section->data[0]->value, "true") == 0, "'test' should be equal to 'true'"); + STASIS_ASSERT(strcmp(section->key, "section name here") == 0, "defined section not found"); section = ini_section_search(&ini, INI_SEARCH_BEGINS, "bogus"); - OMC_ASSERT(section == NULL, "bogus section search returned non-NULL"); + STASIS_ASSERT(section == NULL, "bogus section search returned non-NULL"); section = ini_section_search(&ini, INI_SEARCH_BEGINS, NULL); - OMC_ASSERT(section == NULL, "NULL argument returned non-NULL"); + STASIS_ASSERT(section == NULL, "NULL argument returned non-NULL"); ini_free(&ini); remove(filename); } @@ -59,15 +59,15 @@ void test_ini_has_key() { const char *data = "[default]\na=1\nb=2\nc=3\n[section name here]\ntest=true\n"; struct INIFILE *ini; - omc_testing_write_ascii(filename, data); + stasis_testing_write_ascii(filename, data); ini = ini_open(filename); - OMC_ASSERT(ini_has_key(ini, "default", "a") == true, "'default:a' key should exist"); - OMC_ASSERT(ini_has_key(NULL, "default", NULL) == false, "NULL ini object should return false"); - OMC_ASSERT(ini_has_key(ini, "default", NULL) == false, "NULL key should return false"); - OMC_ASSERT(ini_has_key(ini, NULL, "a") == false, "NULL section should return false"); - OMC_ASSERT(ini_has_key(ini, "default", "noname") == false, "'default:noname' key should not exist"); - OMC_ASSERT(ini_has_key(ini, "doesnotexist", "name") == false, "'doesnotexist:name' key should not exist"); + STASIS_ASSERT(ini_has_key(ini, "default", "a") == true, "'default:a' key should exist"); + STASIS_ASSERT(ini_has_key(NULL, "default", NULL) == false, "NULL ini object should return false"); + STASIS_ASSERT(ini_has_key(ini, "default", NULL) == false, "NULL key should return false"); + STASIS_ASSERT(ini_has_key(ini, NULL, "a") == false, "NULL section should return false"); + STASIS_ASSERT(ini_has_key(ini, "default", "noname") == false, "'default:noname' key should not exist"); + STASIS_ASSERT(ini_has_key(ini, "doesnotexist", "name") == false, "'doesnotexist:name' key should not exist"); ini_free(&ini); remove(filename); } @@ -77,32 +77,32 @@ void test_ini_setval_getval() { const char *data = "[default]\na=1\nb=2\nc=3\n[section name here]\ntest=true\n"; struct INIFILE *ini; - omc_testing_write_ascii(filename, data); + stasis_testing_write_ascii(filename, data); ini = ini_open(filename); union INIVal val; - OMC_ASSERT(ini_setval(&ini, INI_SETVAL_REPLACE, "default", "a", "changed") == 0, "failed to set value"); - OMC_ASSERT(ini_getval(ini, "default", "a", INIVAL_TYPE_STR, &val) == 0, "failed to get value"); - OMC_ASSERT(strcmp(val.as_char_p, "a") != 0, "unexpected value loaded from modified variable"); - OMC_ASSERT(strcmp(val.as_char_p, "changed") == 0, "unexpected value loaded from modified variable"); + STASIS_ASSERT(ini_setval(&ini, INI_SETVAL_REPLACE, "default", "a", "changed") == 0, "failed to set value"); + STASIS_ASSERT(ini_getval(ini, "default", "a", INIVAL_TYPE_STR, &val) == 0, "failed to get value"); + STASIS_ASSERT(strcmp(val.as_char_p, "a") != 0, "unexpected value loaded from modified variable"); + STASIS_ASSERT(strcmp(val.as_char_p, "changed") == 0, "unexpected value loaded from modified variable"); - OMC_ASSERT(ini_setval(&ini, INI_SETVAL_APPEND, "default", "a", " twice") == 0, "failed to set value"); - OMC_ASSERT(ini_getval(ini, "default", "a", INIVAL_TYPE_STR, &val) == 0, "failed to get value"); - OMC_ASSERT(strcmp(val.as_char_p, "changed") != 0, "unexpected value loaded from modified variable"); - OMC_ASSERT(strcmp(val.as_char_p, "changed twice") == 0, "unexpected value loaded from modified variable"); + STASIS_ASSERT(ini_setval(&ini, INI_SETVAL_APPEND, "default", "a", " twice") == 0, "failed to set value"); + STASIS_ASSERT(ini_getval(ini, "default", "a", INIVAL_TYPE_STR, &val) == 0, "failed to get value"); + STASIS_ASSERT(strcmp(val.as_char_p, "changed") != 0, "unexpected value loaded from modified variable"); + STASIS_ASSERT(strcmp(val.as_char_p, "changed twice") == 0, "unexpected value loaded from modified variable"); ini_free(&ini); remove(filename); } int main(int argc, char *argv[]) { - OMC_TEST_BEGIN_MAIN(); - OMC_TEST_FUNC *tests[] = { + STASIS_TEST_BEGIN_MAIN(); + STASIS_TEST_FUNC *tests[] = { test_ini_open_empty, test_ini_open, test_ini_section_search, test_ini_has_key, test_ini_setval_getval, }; - OMC_TEST_RUN(tests); - OMC_TEST_END_MAIN(); + STASIS_TEST_RUN(tests); + STASIS_TEST_END_MAIN(); }
\ No newline at end of file diff --git a/tests/test_relocation.c b/tests/test_relocation.c index 0796074..a6c33f2 100644 --- a/tests/test_relocation.c +++ b/tests/test_relocation.c @@ -16,8 +16,8 @@ void test_replace_text() { char input[BUFSIZ] = {0}; strcpy(input, test_string); - OMC_ASSERT(replace_text(input, target, "^^^", 0) == 0, "string replacement failed"); - OMC_ASSERT(strcmp(input, expected) == 0, "unexpected replacement"); + STASIS_ASSERT(replace_text(input, target, "^^^", 0) == 0, "string replacement failed"); + STASIS_ASSERT(strcmp(input, expected) == 0, "unexpected replacement"); } } @@ -33,9 +33,9 @@ void test_file_replace_text() { if (fp) { fprintf(fp, "%s", test_string); fclose(fp); - OMC_ASSERT(file_replace_text(filename, target, "^^^", 0) == 0, "string replacement failed"); + STASIS_ASSERT(file_replace_text(filename, target, "^^^", 0) == 0, "string replacement failed"); } else { - OMC_ASSERT(false, "failed to open file for writing"); + STASIS_ASSERT(false, "failed to open file for writing"); return; } @@ -43,20 +43,20 @@ void test_file_replace_text() { fp = fopen(filename, "r"); if (fp) { fread(input, sizeof(*input), sizeof(input), fp); - OMC_ASSERT(strcmp(input, expected) == 0, "unexpected replacement"); + STASIS_ASSERT(strcmp(input, expected) == 0, "unexpected replacement"); } else { - OMC_ASSERT(false, "failed to open file for reading"); + STASIS_ASSERT(false, "failed to open file for reading"); return; } } } int main(int argc, char *argv[]) { - OMC_TEST_BEGIN_MAIN(); - OMC_TEST_FUNC *tests[] = { + STASIS_TEST_BEGIN_MAIN(); + STASIS_TEST_FUNC *tests[] = { test_replace_text, test_file_replace_text, }; - OMC_TEST_RUN(tests); - OMC_TEST_END_MAIN(); + STASIS_TEST_RUN(tests); + STASIS_TEST_END_MAIN(); }
\ No newline at end of file diff --git a/tests/test_str.c b/tests/test_str.c index fc2cf46..be3f3e1 100644 --- a/tests/test_str.c +++ b/tests/test_str.c @@ -15,8 +15,8 @@ void test_to_short_version() { for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { char *result = to_short_version(tc[i].data); - OMC_ASSERT_FATAL(result != NULL, "should not be NULL"); - OMC_ASSERT(strcmp(result, tc[i].expected) == 0, "unexpected result"); + STASIS_ASSERT_FATAL(result != NULL, "should not be NULL"); + STASIS_ASSERT(strcmp(result, tc[i].expected) == 0, "unexpected result"); guard_free(result); } @@ -38,7 +38,7 @@ void test_tolower_s() { char input[100] = {0}; strcpy(input, tc[i].data); tolower_s(input); - OMC_ASSERT(strcmp(input, tc[i].expected) == 0, "unexpected result"); + STASIS_ASSERT(strcmp(input, tc[i].expected) == 0, "unexpected result"); } } @@ -59,7 +59,7 @@ void test_isdigit_s() { }; for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { - OMC_ASSERT(isdigit_s(tc[i].data) == tc[i].expected, "unexpected result"); + STASIS_ASSERT(isdigit_s(tc[i].data) == tc[i].expected, "unexpected result"); } } @@ -75,10 +75,10 @@ void test_strdup_array_and_strcmp_array() { .expected = (const char *[]) {"I", "have", "a", "pencil", "box", NULL}}, }; - OMC_ASSERT(strdup_array(NULL) == NULL, "returned non-NULL on NULL argument"); + STASIS_ASSERT(strdup_array(NULL) == NULL, "returned non-NULL on NULL argument"); for (size_t outer = 0; outer < sizeof(tc) / sizeof(*tc); outer++) { char **result = strdup_array((char **) tc[outer].data); - OMC_ASSERT(strcmp_array((const char **) result, tc[outer].expected) == 0, "array members were different"); + STASIS_ASSERT(strcmp_array((const char **) result, tc[outer].expected) == 0, "array members were different"); } const struct testcase tc_bad[] = { @@ -88,12 +88,12 @@ void test_strdup_array_and_strcmp_array() { .expected = (const char *[]) {"I", "have", "a", "pencil", "box", NULL}}, }; - OMC_ASSERT(strcmp_array(tc[0].data, NULL) > 0, "right argument is NULL, expected positive return"); - OMC_ASSERT(strcmp_array(NULL, tc[0].data) < 0, "left argument is NULL, expected negative return"); - OMC_ASSERT(strcmp_array(NULL, NULL) == 0, "left and right arguments are NULL, expected zero return"); + STASIS_ASSERT(strcmp_array(tc[0].data, NULL) > 0, "right argument is NULL, expected positive return"); + STASIS_ASSERT(strcmp_array(NULL, tc[0].data) < 0, "left argument is NULL, expected negative return"); + STASIS_ASSERT(strcmp_array(NULL, NULL) == 0, "left and right arguments are NULL, expected zero return"); for (size_t outer = 0; outer < sizeof(tc_bad) / sizeof(*tc_bad); outer++) { char **result = strdup_array((char **) tc_bad[outer].data); - OMC_ASSERT(strcmp_array((const char **) result, tc_bad[outer].expected) != 0, "array members were identical"); + STASIS_ASSERT(strcmp_array((const char **) result, tc_bad[outer].expected) != 0, "array members were identical"); } } @@ -112,7 +112,7 @@ void test_strchrdel() { for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { char *data = strdup(tc[i].data); strchrdel(data, tc[i].input); - OMC_ASSERT(strcmp(data, tc[i].expected) == 0, "wrong status for condition"); + STASIS_ASSERT(strcmp(data, tc[i].expected) == 0, "wrong status for condition"); guard_free(data); } } @@ -138,7 +138,7 @@ void test_endswith() { }; for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { int result = endswith(tc[i].data, tc[i].input); - OMC_ASSERT(result == tc[i].expected, "wrong status for condition"); + STASIS_ASSERT(result == tc[i].expected, "wrong status for condition"); } } @@ -163,7 +163,7 @@ void test_startswith() { }; for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { int result = startswith(tc[i].data, tc[i].input); - OMC_ASSERT(result == tc[i].expected, "wrong status for condition"); + STASIS_ASSERT(result == tc[i].expected, "wrong status for condition"); } } @@ -180,7 +180,7 @@ void test_num_chars() { {.data = "abc\t\ndef\nabc\ndef\n", .input = '\t', .expected = 1}, }; for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { - OMC_ASSERT(num_chars(tc[i].data, tc[i].input) == tc[i].expected, "incorrect number of characters detected"); + STASIS_ASSERT(num_chars(tc[i].data, tc[i].input) == tc[i].expected, "incorrect number of characters detected"); } } @@ -204,7 +204,7 @@ void test_split() { for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { char **result; result = split(tc[i].data, tc[i].delim, tc[i].max_split); - OMC_ASSERT(strcmp_array(result, tc[i].expected) == 0, "Split failed"); + STASIS_ASSERT(strcmp_array(result, tc[i].expected) == 0, "Split failed"); GENERIC_ARRAY_FREE(result); } } @@ -224,7 +224,7 @@ void test_join() { for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { char *result; result = join(tc[i].data, tc[i].delim); - OMC_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "failed to join array"); + STASIS_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "failed to join array"); guard_free(result); } } @@ -243,7 +243,7 @@ void test_join_ex() { for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { char *result; result = join_ex(tc[i].delim, "a", "b", "c", "d", "e", NULL); - OMC_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "failed to join array"); + STASIS_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "failed to join array"); guard_free(result); } } @@ -269,7 +269,7 @@ void test_substring_between() { }; for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { char *result = substring_between(tc[i].data, tc[i].delim); - OMC_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "unable to extract substring"); + STASIS_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "unable to extract substring"); guard_free(result); } } @@ -288,7 +288,7 @@ void test_strdeldup() { }; for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { char **result = strdeldup(tc[i].data); - OMC_ASSERT(strcmp_array(result, tc[i].expected) == 0, "incorrect number of duplicates removed"); + STASIS_ASSERT(strcmp_array(result, tc[i].expected) == 0, "incorrect number of duplicates removed"); GENERIC_ARRAY_FREE(result); } } @@ -313,13 +313,13 @@ void test_lstrip() { {.data = " I am a string.\n", .expected = "I am a string.\n"}, }; - OMC_ASSERT(lstrip(NULL) == NULL, "incorrect return type"); + STASIS_ASSERT(lstrip(NULL) == NULL, "incorrect return type"); for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { char *buf = calloc(255, sizeof(*buf)); char *result; strcpy(buf, tc[i].data); result = lstrip(buf); - OMC_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "incorrect strip-from-left"); + STASIS_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "incorrect strip-from-left"); guard_free(buf); } } @@ -338,13 +338,13 @@ void test_strip() { {.data = " ", .expected = ""}, }; - OMC_ASSERT(strip(NULL) == NULL, "incorrect return type"); + STASIS_ASSERT(strip(NULL) == NULL, "incorrect return type"); for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { char *buf = calloc(255, sizeof(*buf)); char *result; strcpy(buf, tc[i].data); result = strip(buf); - OMC_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "incorrect strip-from-right"); + STASIS_ASSERT(strcmp(result ? result : "", tc[i].expected) == 0, "incorrect strip-from-right"); guard_free(buf); } } @@ -354,8 +354,8 @@ void test_isempty() { } int main(int argc, char *argv[]) { - OMC_TEST_BEGIN_MAIN(); - OMC_TEST_FUNC *tests[] = { + STASIS_TEST_BEGIN_MAIN(); + STASIS_TEST_FUNC *tests[] = { test_to_short_version, test_tolower_s, test_isdigit_s, @@ -372,6 +372,6 @@ int main(int argc, char *argv[]) { test_join_ex, test_substring_between, }; - OMC_TEST_RUN(tests); - OMC_TEST_END_MAIN(); + STASIS_TEST_RUN(tests); + STASIS_TEST_END_MAIN(); }
\ No newline at end of file diff --git a/tests/test_strlist.c b/tests/test_strlist.c index aa9eb4e..723c904 100644 --- a/tests/test_strlist.c +++ b/tests/test_strlist.c @@ -8,7 +8,7 @@ do { \ strlist_append(&list, (char *) tc[i].data); \ result = FUNC(list, i); \ if (!strlist_errno) { \ - OMC_ASSERT(result == (TYPE) tc[i].expected, "unexpected numeric result"); \ + STASIS_ASSERT(result == (TYPE) tc[i].expected, "unexpected numeric result"); \ } \ } \ guard_strlist_free(&list); \ @@ -17,9 +17,9 @@ do { \ void test_strlist_init() { struct StrList *list; list = strlist_init(); - OMC_ASSERT(list != NULL, "list should not be NULL"); - OMC_ASSERT(list->num_alloc == 1, "fresh list should have one record allocated"); - OMC_ASSERT(list->num_inuse == 0, "fresh list should have no records in use"); + STASIS_ASSERT(list != NULL, "list should not be NULL"); + STASIS_ASSERT(list->num_alloc == 1, "fresh list should have one record allocated"); + STASIS_ASSERT(list->num_inuse == 0, "fresh list should have no records in use"); guard_strlist_free(&list); } @@ -47,9 +47,9 @@ void test_strlist_append() { list = strlist_init(); for (size_t i = 0; i < sizeof(tc) / sizeof(*tc); i++) { strlist_append(&list, (char *) tc[i].data); - OMC_ASSERT(list->num_inuse == tc[i].expected_in_use, "incorrect number of records in use"); - OMC_ASSERT(list->num_alloc == tc[i].expected_in_use + 1, "incorrect number of records allocated"); - OMC_ASSERT(strcmp(strlist_item(list, i), tc[i].data) == 0, "value was appended incorrectly. data mismatch."); + STASIS_ASSERT(list->num_inuse == tc[i].expected_in_use, "incorrect number of records in use"); + STASIS_ASSERT(list->num_alloc == tc[i].expected_in_use + 1, "incorrect number of records allocated"); + STASIS_ASSERT(strcmp(strlist_item(list, i), tc[i].data) == 0, "value was appended incorrectly. data mismatch."); } guard_strlist_free(&list); } @@ -62,7 +62,7 @@ void test_strlist_append_many_records() { for (size_t i = 0; i < maxrec; i++) { strlist_append(&list, (char *) data); } - OMC_ASSERT(strlist_count(list) == maxrec, "record count mismatch"); + STASIS_ASSERT(strlist_count(list) == maxrec, "record count mismatch"); guard_strlist_free(&list); } @@ -86,7 +86,7 @@ void test_strlist_set() { result = strcmp(strlist_item(list, i), replacement_long) == 0; set_resize_long_all_ok += result; } - OMC_ASSERT(set_resize_long_all_ok == (int) maxrec, "Replacing record with longer strings failed"); + STASIS_ASSERT(set_resize_long_all_ok == (int) maxrec, "Replacing record with longer strings failed"); for (size_t i = 0; i < maxrec; i++) { int result; @@ -94,9 +94,9 @@ void test_strlist_set() { result = strcmp(strlist_item(list, i), replacement_short) == 0; set_resize_short_all_ok += result; } - OMC_ASSERT(set_resize_short_all_ok == (int) maxrec, "Replacing record with shorter strings failed"); + STASIS_ASSERT(set_resize_short_all_ok == (int) maxrec, "Replacing record with shorter strings failed"); - OMC_ASSERT(strlist_count(list) == maxrec, "record count mismatch"); + STASIS_ASSERT(strlist_count(list) == maxrec, "record count mismatch"); guard_strlist_free(&list); } @@ -115,14 +115,14 @@ void test_strlist_append_file() { const char *local_filename = "test_strlist_append_file.txt"; struct testcase tc[] = { - {.origin = "https://ssb.stsci.edu/jhunk/omc_test/test_strlist_append_file_from_remote.txt", .expected = expected}, + {.origin = "https://ssb.stsci.edu/jhunk/stasis_test/test_strlist_append_file_from_remote.txt", .expected = expected}, {.origin = local_filename, .expected = expected}, }; FILE *fp; fp = fopen(local_filename, "w"); if (!fp) { - OMC_ASSERT(false, "unable to open local file for writing"); + STASIS_ASSERT(false, "unable to open local file for writing"); } for (size_t i = 0; expected[i] != NULL; i++) { fprintf(fp, "%s", expected[i]); @@ -133,7 +133,7 @@ void test_strlist_append_file() { struct StrList *list; list = strlist_init(); if (!list) { - OMC_ASSERT(false, "failed to create list"); + STASIS_ASSERT(false, "failed to create list"); return; } strlist_append_file(list, (char *) tc[i].origin, NULL); @@ -142,9 +142,9 @@ void test_strlist_append_file() { const char *right; left = strlist_item(list, z); right = expected[z]; - OMC_ASSERT(strcmp(left, right) == 0, "file content is different than expected"); + STASIS_ASSERT(strcmp(left, right) == 0, "file content is different than expected"); } - OMC_ASSERT(strcmp_array(list->data, expected) == 0, "file contents does not match expected values"); + STASIS_ASSERT(strcmp_array(list->data, expected) == 0, "file contents does not match expected values"); guard_strlist_free(&list); } } @@ -159,10 +159,10 @@ void test_strlist_append_strlist() { strlist_append(&right, "B"); strlist_append(&right, "C"); strlist_append_strlist(left, right); - OMC_ASSERT(strlist_cmp(left, right) == 0, "left and right should be identical"); + STASIS_ASSERT(strlist_cmp(left, right) == 0, "left and right should be identical"); strlist_append_strlist(left, right); - OMC_ASSERT(strlist_cmp(left, right) == 1, "left and right should be different"); - OMC_ASSERT(strlist_count(left) > strlist_count(right), "left should be larger than right"); + STASIS_ASSERT(strlist_cmp(left, right) == 1, "left and right should be different"); + STASIS_ASSERT(strlist_count(left) > strlist_count(right), "left should be larger than right"); guard_strlist_free(&left); guard_strlist_free(&right); } @@ -182,7 +182,7 @@ void test_strlist_append_array() { char *item = strlist_item(list, i); result += strcmp(item, data[i]) == 0; } - OMC_ASSERT(result == strlist_count(list), "result is not identical to input"); + STASIS_ASSERT(result == strlist_count(list), "result is not identical to input"); guard_strlist_free(&list); } @@ -193,9 +193,9 @@ void test_strlist_append_tokenize() { list = strlist_init(); strlist_append_tokenize(list, (char *) data, "\n"); // note: the trailing '\n' in the data is parsed as a token - OMC_ASSERT(line_count + 1 == strlist_count(list), "unexpected number of lines in array"); + STASIS_ASSERT(line_count + 1 == strlist_count(list), "unexpected number of lines in array"); int trailing_item_is_empty = isempty(strlist_item(list, strlist_count(list) - 1)); - OMC_ASSERT(trailing_item_is_empty, "trailing record should be an empty string"); + STASIS_ASSERT(trailing_item_is_empty, "trailing record should be an empty string"); guard_strlist_free(&list); } @@ -207,10 +207,10 @@ void test_strlist_copy() { strlist_append(&list, "of this data"); strlist_append(&list, "1:1, please"); - OMC_ASSERT(strlist_copy(NULL) == NULL, "NULL argument should return NULL"); + STASIS_ASSERT(strlist_copy(NULL) == NULL, "NULL argument should return NULL"); list_copy = strlist_copy(list); - OMC_ASSERT(strlist_cmp(list, list_copy) == 0, "list was copied incorrectly"); + STASIS_ASSERT(strlist_cmp(list, list_copy) == 0, "list was copied incorrectly"); guard_strlist_free(&list); guard_strlist_free(&list_copy); } @@ -241,8 +241,8 @@ void test_strlist_remove() { } } size_t len_after = strlist_count(list); - OMC_ASSERT(len_before == data_size, "list length before modification is incorrect. new records?"); - OMC_ASSERT(len_after == (len_before - removed), "list length after modification is incorrect. not enough records removed."); + STASIS_ASSERT(len_before == data_size, "list length before modification is incorrect. new records?"); + STASIS_ASSERT(len_after == (len_before - removed), "list length after modification is incorrect. not enough records removed."); guard_strlist_free(&list); } @@ -253,18 +253,18 @@ void test_strlist_cmp() { left = strlist_init(); right = strlist_init(); - OMC_ASSERT(strlist_cmp(NULL, NULL) == -1, "NULL first argument should return -1"); - OMC_ASSERT(strlist_cmp(left, NULL) == -2, "NULL second argument should return -2"); - OMC_ASSERT(strlist_cmp(left, right) == 0, "should be the same"); + STASIS_ASSERT(strlist_cmp(NULL, NULL) == -1, "NULL first argument should return -1"); + STASIS_ASSERT(strlist_cmp(left, NULL) == -2, "NULL second argument should return -2"); + STASIS_ASSERT(strlist_cmp(left, right) == 0, "should be the same"); strlist_append(&left, "left"); - OMC_ASSERT(strlist_cmp(left, right) == 1, "should return 1"); + STASIS_ASSERT(strlist_cmp(left, right) == 1, "should return 1"); strlist_append(&right, "right"); - OMC_ASSERT(strlist_cmp(left, right) == 1, "should return 1"); + STASIS_ASSERT(strlist_cmp(left, right) == 1, "should return 1"); strlist_append(&left, "left again"); strlist_append(&left, "left again"); strlist_append(&left, "left again"); - OMC_ASSERT(strlist_cmp(left, right) == 1, "should return 1"); - OMC_ASSERT(strlist_cmp(right, left) == 1, "should return 1"); + STASIS_ASSERT(strlist_cmp(left, right) == 1, "should return 1"); + STASIS_ASSERT(strlist_cmp(right, left) == 1, "should return 1"); guard_strlist_free(&left); guard_strlist_free(&right); } @@ -286,7 +286,7 @@ void test_strlist_reverse() { char *item = strlist_item(list, i); result += strcmp(item, expected[i]) == 0; } - OMC_ASSERT(result == (int) strlist_count(list), "alphabetic sort failed"); + STASIS_ASSERT(result == (int) strlist_count(list), "alphabetic sort failed"); guard_strlist_free(&list); } @@ -297,8 +297,8 @@ void test_strlist_count() { strlist_append(&list, "123"); strlist_append(&list, "def"); strlist_append(&list, "456"); - OMC_ASSERT(strlist_count(NULL) == 0, "NULL input should produce a zero result"); - OMC_ASSERT(strlist_count(list) == 4, "incorrect record count"); + STASIS_ASSERT(strlist_count(NULL) == 0, "NULL input should produce a zero result"); + STASIS_ASSERT(strlist_count(list) == 4, "incorrect record count"); guard_strlist_free(&list); } @@ -314,13 +314,13 @@ void test_strlist_sort_alphabetic() { list = strlist_init(); strlist_append_array(list, (char **) data); - strlist_sort(list, OMC_SORT_ALPHA); + strlist_sort(list, STASIS_SORT_ALPHA); int result = 0; for (size_t i = 0; i < strlist_count(list); i++) { char *item = strlist_item(list, i); result += strcmp(item, expected[i]) == 0; } - OMC_ASSERT(result == (int) strlist_count(list), "alphabetic sort failed"); + STASIS_ASSERT(result == (int) strlist_count(list), "alphabetic sort failed"); guard_strlist_free(&list); } @@ -335,13 +335,13 @@ void test_strlist_sort_len_ascending() { list = strlist_init(); strlist_append_array(list, (char **) data); - strlist_sort(list, OMC_SORT_LEN_ASCENDING); + strlist_sort(list, STASIS_SORT_LEN_ASCENDING); int result = 0; for (size_t i = 0; i < strlist_count(list); i++) { char *item = strlist_item(list, i); result += strcmp(item, expected[i]) == 0; } - OMC_ASSERT(result == (int) strlist_count(list), "ascending sort failed"); + STASIS_ASSERT(result == (int) strlist_count(list), "ascending sort failed"); guard_strlist_free(&list); } @@ -356,13 +356,13 @@ void test_strlist_sort_len_descending() { list = strlist_init(); strlist_append_array(list, (char **) data); - strlist_sort(list, OMC_SORT_LEN_DESCENDING); + strlist_sort(list, STASIS_SORT_LEN_DESCENDING); int result = 0; for (size_t i = 0; i < strlist_count(list); i++) { char *item = strlist_item(list, i); result += strcmp(item, expected[i]) == 0; } - OMC_ASSERT(result == (int) strlist_count(list), "descending sort failed"); + STASIS_ASSERT(result == (int) strlist_count(list), "descending sort failed"); guard_strlist_free(&list); } @@ -370,7 +370,7 @@ void test_strlist_item_as_str() { struct StrList *list; list = strlist_init(); strlist_append(&list, "hello"); - OMC_ASSERT(strcmp(strlist_item_as_str(list, 0), "hello") == 0, "unexpected string result"); + STASIS_ASSERT(strcmp(strlist_item_as_str(list, 0), "hello") == 0, "unexpected string result"); guard_strlist_free(&list); } @@ -578,8 +578,8 @@ void test_strlist_item_as_long_double() { } int main(int argc, char *argv[]) { - OMC_TEST_BEGIN_MAIN(); - OMC_TEST_FUNC *tests[] = { + STASIS_TEST_BEGIN_MAIN(); + STASIS_TEST_FUNC *tests[] = { test_strlist_init, test_strlist_free, test_strlist_append, @@ -612,6 +612,6 @@ int main(int argc, char *argv[]) { test_strlist_item_as_double, test_strlist_item_as_long_double, }; - OMC_TEST_RUN(tests); - OMC_TEST_END_MAIN(); + STASIS_TEST_RUN(tests); + STASIS_TEST_END_MAIN(); }
\ No newline at end of file diff --git a/tests/test_system.c b/tests/test_system.c index bf60222..0f6bfb7 100644 --- a/tests/test_system.c +++ b/tests/test_system.c @@ -2,7 +2,7 @@ static int ascii_file_contains(const char *filename, const char *value) { int result = -1; - char *contents = omc_testing_read_ascii(filename); + char *contents = stasis_testing_read_ascii(filename); if (!contents) { perror(filename); return result; @@ -16,71 +16,71 @@ void test_shell_output_null_args() { char *result; int status; result = shell_output(NULL, &status); - OMC_ASSERT(strcmp(result, "") == 0, "no output expected"); - OMC_ASSERT(status != 0, "expected a non-zero exit code due to null argument string"); + STASIS_ASSERT(strcmp(result, "") == 0, "no output expected"); + STASIS_ASSERT(status != 0, "expected a non-zero exit code due to null argument string"); } void test_shell_output_non_zero_exit() { char *result; int status; result = shell_output("HELLO1234 WORLD", &status); - OMC_ASSERT(strcmp(result, "") == 0, "no output expected"); - OMC_ASSERT(status != 0, "expected a non-zero exit code due to intentional error"); + STASIS_ASSERT(strcmp(result, "") == 0, "no output expected"); + STASIS_ASSERT(status != 0, "expected a non-zero exit code due to intentional error"); } void test_shell_output() { char *result; int status; result = shell_output("echo HELLO WORLD", &status); - OMC_ASSERT(strcmp(result, "HELLO WORLD\n") == 0, "output message was incorrect"); - OMC_ASSERT(status == 0, "expected zero exit code"); + STASIS_ASSERT(strcmp(result, "HELLO WORLD\n") == 0, "output message was incorrect"); + STASIS_ASSERT(status == 0, "expected zero exit code"); } void test_shell_safe() { struct Process proc; memset(&proc, 0, sizeof(proc)); shell_safe(&proc, "true"); - OMC_ASSERT(proc.returncode == 0, "expected a zero exit code"); + STASIS_ASSERT(proc.returncode == 0, "expected a zero exit code"); } void test_shell_safe_verify_restrictions() { struct Process proc; - const char *invalid_chars = OMC_SHELL_SAFE_RESTRICT; + const char *invalid_chars = STASIS_SHELL_SAFE_RESTRICT; for (size_t i = 0; i < strlen(invalid_chars); i++) { char cmd[PATH_MAX] = {0}; memset(&proc, 0, sizeof(proc)); sprintf(cmd, "true%c false", invalid_chars[i]); shell_safe(&proc, cmd); - OMC_ASSERT(proc.returncode == -1, "expected a negative result due to intentional error"); + STASIS_ASSERT(proc.returncode == -1, "expected a negative result due to intentional error"); } } void test_shell_null_proc() { int returncode = shell(NULL, "true"); - OMC_ASSERT(returncode == 0, "expected a zero exit code"); + STASIS_ASSERT(returncode == 0, "expected a zero exit code"); } void test_shell_null_args() { struct Process proc; memset(&proc, 0, sizeof(proc)); shell(&proc, NULL); - OMC_ASSERT(proc.returncode < 0, "expected a non-zero/negative exit code"); + STASIS_ASSERT(proc.returncode < 0, "expected a non-zero/negative exit code"); } void test_shell_exit() { struct Process proc; memset(&proc, 0, sizeof(proc)); shell(&proc, "true"); - OMC_ASSERT(proc.returncode == 0, "expected a zero exit code"); + STASIS_ASSERT(proc.returncode == 0, "expected a zero exit code"); } void test_shell_non_zero_exit() { struct Process proc; memset(&proc, 0, sizeof(proc)); shell(&proc, "false"); - OMC_ASSERT(proc.returncode != 0, "expected a non-zero exit code"); + STASIS_ASSERT(proc.returncode != 0, "expected a non-zero exit code"); } void test_shell() { @@ -95,28 +95,28 @@ void test_shell() { struct Process *proc = &procs[i]; switch (i) { case 0: - OMC_ASSERT(proc->returncode == 0, "echo should not fail"); + STASIS_ASSERT(proc->returncode == 0, "echo should not fail"); break; case 1: - OMC_ASSERT(proc->returncode == 0, "echo should not fail"); - OMC_ASSERT(access(proc->f_stdout, F_OK) == 0, "stdout.log should exist"); - OMC_ASSERT(access(proc->f_stderr, F_OK) != 0, "stderr.log should not exist"); - OMC_ASSERT(ascii_file_contains(proc->f_stdout, "test_stdout\n"), "output file did not contain test message"); + STASIS_ASSERT(proc->returncode == 0, "echo should not fail"); + STASIS_ASSERT(access(proc->f_stdout, F_OK) == 0, "stdout.log should exist"); + STASIS_ASSERT(access(proc->f_stderr, F_OK) != 0, "stderr.log should not exist"); + STASIS_ASSERT(ascii_file_contains(proc->f_stdout, "test_stdout\n"), "output file did not contain test message"); remove(proc->f_stdout); break; case 2: - OMC_ASSERT(proc->returncode == 0, "echo should not fail"); - OMC_ASSERT(access(proc->f_stdout, F_OK) != 0, "stdout.log should not exist"); - OMC_ASSERT(access(proc->f_stderr, F_OK) == 0, "stderr.log should exist"); - OMC_ASSERT(ascii_file_contains(proc->f_stderr, "test_stderr\n"), "output file did not contain test message"); + STASIS_ASSERT(proc->returncode == 0, "echo should not fail"); + STASIS_ASSERT(access(proc->f_stdout, F_OK) != 0, "stdout.log should not exist"); + STASIS_ASSERT(access(proc->f_stderr, F_OK) == 0, "stderr.log should exist"); + STASIS_ASSERT(ascii_file_contains(proc->f_stderr, "test_stderr\n"), "output file did not contain test message"); remove(proc->f_stderr); break; case 3: - OMC_ASSERT(proc->returncode == 0, "echo should not fail"); - OMC_ASSERT(access("stdouterr.log", F_OK) == 0, "stdouterr.log should exist"); - OMC_ASSERT(access("stderr.log", F_OK) != 0, "stdout.log should not exist"); - OMC_ASSERT(access("stderr.log", F_OK) != 0, "stderr.log should not exist"); - OMC_ASSERT(ascii_file_contains(proc->f_stdout, "test_stdout\ntest_stderr\n"), "output file did not contain test message"); + STASIS_ASSERT(proc->returncode == 0, "echo should not fail"); + STASIS_ASSERT(access("stdouterr.log", F_OK) == 0, "stdouterr.log should exist"); + STASIS_ASSERT(access("stderr.log", F_OK) != 0, "stdout.log should not exist"); + STASIS_ASSERT(access("stderr.log", F_OK) != 0, "stderr.log should not exist"); + STASIS_ASSERT(ascii_file_contains(proc->f_stdout, "test_stdout\ntest_stderr\n"), "output file did not contain test message"); remove(proc->f_stdout); remove(proc->f_stderr); break; @@ -127,8 +127,8 @@ void test_shell() { } int main(int argc, char *argv[]) { - OMC_TEST_BEGIN_MAIN(); - OMC_TEST_FUNC *tests[] = { + STASIS_TEST_BEGIN_MAIN(); + STASIS_TEST_FUNC *tests[] = { test_shell_output_null_args, test_shell_output_non_zero_exit, test_shell_output, @@ -140,6 +140,6 @@ int main(int argc, char *argv[]) { test_shell_exit, test_shell, }; - OMC_TEST_RUN(tests); - OMC_TEST_END_MAIN(); + STASIS_TEST_RUN(tests); + STASIS_TEST_END_MAIN(); } diff --git a/tests/test_template.c b/tests/test_template.c index fda860a..05d8242 100644 --- a/tests/test_template.c +++ b/tests/test_template.c @@ -39,9 +39,9 @@ void test_tpl_workflow() { tpl_reset(); tpl_register("hello_message", &data); - OMC_ASSERT(strcmp(tpl_render("I said, \"{{ hello_message }}\""), "I said, \"Hello world!\"") == 0, "stored value in key is incorrect"); + STASIS_ASSERT(strcmp(tpl_render("I said, \"{{ hello_message }}\""), "I said, \"Hello world!\"") == 0, "stored value in key is incorrect"); setenv("HELLO", "Hello environment!", 1); - OMC_ASSERT(strcmp(tpl_render("{{ env:HELLO }}"), "Hello environment!") == 0, "environment variable content mismatch"); + STASIS_ASSERT(strcmp(tpl_render("{{ env:HELLO }}"), "Hello environment!") == 0, "environment variable content mismatch"); unsetenv("HELLO"); guard_free(data); } @@ -52,8 +52,8 @@ void test_tpl_register() { unsigned used_before_register = tpl_pool_used; tpl_register("hello_message", &data); - OMC_ASSERT(tpl_pool_used == (used_before_register + 1), "tpl_register did not increment allocation counter"); - OMC_ASSERT(tpl_pool[used_before_register] != NULL, "register did not allocate a tpl_item record in the pool"); + STASIS_ASSERT(tpl_pool_used == (used_before_register + 1), "tpl_register did not increment allocation counter"); + STASIS_ASSERT(tpl_pool[used_before_register] != NULL, "register did not allocate a tpl_item record in the pool"); free(data); } @@ -69,32 +69,32 @@ void test_tpl_register_func() { tpl_register_func("sub", &tasks[1]); tpl_register_func("mul", &tasks[2]); tpl_register_func("div", &tasks[3]); - OMC_ASSERT(tpl_pool_func_used == sizeof(tasks) / sizeof(*tasks), "unexpected function pool used"); + STASIS_ASSERT(tpl_pool_func_used == sizeof(tasks) / sizeof(*tasks), "unexpected function pool used"); char *result = NULL; result = tpl_render("{{ func:add(0,3) }}"); - OMC_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); + STASIS_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); result = tpl_render("{{ func:add(1,2) }}"); - OMC_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); + STASIS_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); result = tpl_render("{{ func:sub(6,3) }}"); - OMC_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); + STASIS_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); result = tpl_render("{{ func:sub(4,1) }}"); - OMC_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); + STASIS_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); result = tpl_render("{{ func:mul(1, 3) }}"); - OMC_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); + STASIS_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); result = tpl_render("{{ func:div(6,2) }}"); - OMC_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); + STASIS_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); result = tpl_render("{{ func:div(3,1) }}"); - OMC_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); + STASIS_ASSERT(result != NULL && strcmp(result, "3") == 0, "Answer was not 3"); } int main(int argc, char *argv[]) { - OMC_TEST_BEGIN_MAIN(); - OMC_TEST_FUNC *tests[] = { + STASIS_TEST_BEGIN_MAIN(); + STASIS_TEST_FUNC *tests[] = { test_tpl_workflow, test_tpl_register_func, test_tpl_register, }; - OMC_TEST_RUN(tests); - OMC_TEST_END_MAIN(); + STASIS_TEST_RUN(tests); + STASIS_TEST_END_MAIN(); }
\ No newline at end of file diff --git a/tests/test_utils.c b/tests/test_utils.c index a2fa8c6..4b19604 100644 --- a/tests/test_utils.c +++ b/tests/test_utils.c @@ -18,8 +18,8 @@ void test_listdir() { } struct StrList *listing; listing = listdir(dirs[0]); - OMC_ASSERT(listing != NULL, "listdir failed"); - OMC_ASSERT(listing && (strlist_count(listing) == (sizeof(dirs) / sizeof(*dirs)) - 1), "should have 3"); + STASIS_ASSERT(listing != NULL, "listdir failed"); + STASIS_ASSERT(listing && (strlist_count(listing) == (sizeof(dirs) / sizeof(*dirs)) - 1), "should have 3"); guard_strlist_free(&listing); } @@ -45,7 +45,7 @@ void test_redact_sensitive() { char *input = strdup(data[i]); char output[100] = {0}; redact_sensitive(to_redact, sizeof(to_redact) / sizeof(*to_redact), input, output, sizeof(output) - 1); - OMC_ASSERT(strcmp(output, expected[i]) == 0, "incorrect redaction"); + STASIS_ASSERT(strcmp(output, expected[i]) == 0, "incorrect redaction"); } } @@ -64,13 +64,13 @@ void test_fix_tox_conf() { if (fp) { fprintf(fp, "%s", data); fclose(fp); - OMC_ASSERT(fix_tox_conf(filename, &result) == 0, "fix_tox_conf failed"); + STASIS_ASSERT(fix_tox_conf(filename, &result) == 0, "fix_tox_conf failed"); } else { - OMC_ASSERT(false, "writing mock tox.ini failed"); + STASIS_ASSERT(false, "writing mock tox.ini failed"); } char **lines = file_readlines(result, 0, 0, NULL); - OMC_ASSERT(strstr_array(lines, expected) != NULL, "{posargs} not found in result"); + STASIS_ASSERT(strstr_array(lines, expected) != NULL, "{posargs} not found in result"); remove(result); guard_free(result); @@ -91,30 +91,30 @@ void test_xml_pretty_print_in_place() { if (fp) { fprintf(fp, "%s", data); fclose(fp); - OMC_ASSERT(xml_pretty_print_in_place( + STASIS_ASSERT(xml_pretty_print_in_place( filename, - OMC_XML_PRETTY_PRINT_PROG, - OMC_XML_PRETTY_PRINT_ARGS) == 0, + STASIS_XML_PRETTY_PRINT_PROG, + STASIS_XML_PRETTY_PRINT_ARGS) == 0, "xml pretty print failed (xmllint not installed?)"); } else { - OMC_ASSERT(false, "failed to create input file"); + STASIS_ASSERT(false, "failed to create input file"); } fp = fopen(filename, "r"); char buf[BUFSIZ] = {0}; if (fread(buf, sizeof(*buf), sizeof(buf) - 1, fp) < 1) { - OMC_ASSERT(false, "failed to consume formatted xml file contents"); + STASIS_ASSERT(false, "failed to consume formatted xml file contents"); } - OMC_ASSERT(strcmp(expected, buf) == 0, "xml file was not reformatted"); + STASIS_ASSERT(strcmp(expected, buf) == 0, "xml file was not reformatted"); } void test_path_store() { char *dest = NULL; chdir(cwd_workspace); int result = path_store(&dest, PATH_MAX, cwd_workspace, "test_path_store"); - OMC_ASSERT(result == 0, "path_store encountered an error"); - OMC_ASSERT(dest != NULL, "dest should not be NULL"); - OMC_ASSERT(dest && (access(dest, F_OK) == 0), "destination path was not created"); + STASIS_ASSERT(result == 0, "path_store encountered an error"); + STASIS_ASSERT(dest != NULL, "dest should not be NULL"); + STASIS_ASSERT(dest && (access(dest, F_OK) == 0), "destination path was not created"); rmtree(dest); } @@ -122,13 +122,13 @@ void test_isempty_dir() { const char *dname = "test_isempty_dir"; rmtree(dname); mkdir(dname, 0755); - OMC_ASSERT(isempty_dir(dname) > 0, "empty directory went undetected"); + STASIS_ASSERT(isempty_dir(dname) > 0, "empty directory went undetected"); char path[PATH_MAX]; sprintf(path, "%s/file.txt", dname); touch(path); - OMC_ASSERT(isempty_dir(dname) == 0, "populated directory went undetected"); + STASIS_ASSERT(isempty_dir(dname) == 0, "populated directory went undetected"); } void test_xmkstemp() { @@ -137,7 +137,7 @@ void test_xmkstemp() { const char *data = "Hello, world!\n"; tempfile = xmkstemp(&tempfp, "w"); - OMC_ASSERT(tempfile != NULL, "failed to create temporary file"); + STASIS_ASSERT(tempfile != NULL, "failed to create temporary file"); fprintf(tempfp, "%s", data); fclose(tempfp); @@ -146,7 +146,7 @@ void test_xmkstemp() { fgets(buf, sizeof(buf) - 1, tempfp); fclose(tempfp); - OMC_ASSERT(strcmp(buf, data) == 0, "data written to temp file is incorrect"); + STASIS_ASSERT(strcmp(buf, data) == 0, "data written to temp file is incorrect"); remove(tempfile); free(tempfile); } @@ -154,16 +154,16 @@ void test_xmkstemp() { void test_msg() { int flags_indent[] = { 0, - OMC_MSG_L1, - OMC_MSG_L2, - OMC_MSG_L3, + STASIS_MSG_L1, + STASIS_MSG_L2, + STASIS_MSG_L3, }; int flags_info[] = { - //OMC_MSG_NOP, - OMC_MSG_SUCCESS, - OMC_MSG_WARN, - OMC_MSG_ERROR, - //OMC_MSG_RESTRICT, + //STASIS_MSG_NOP, + STASIS_MSG_SUCCESS, + STASIS_MSG_WARN, + STASIS_MSG_ERROR, + //STASIS_MSG_RESTRICT, }; for (size_t i = 0; i < sizeof(flags_indent) / sizeof(*flags_indent); i++) { for (size_t x = 0; x < sizeof(flags_info) / sizeof(*flags_info); x++) { @@ -193,13 +193,13 @@ void test_git_clone_and_describe() { system(init_cmd); // clone the bare repo - OMC_ASSERT(git_clone(&proc, repo_git, repo, NULL) == 0, + STASIS_ASSERT(git_clone(&proc, repo_git, repo, NULL) == 0, "a local clone of bare repository should have succeeded"); chdir(repo); // interact with it touch("README.md"); - system("git config user.name omc"); + system("git config user.name stasis"); system("git config user.email null@null.null"); system("git add README.md"); system("git commit --no-gpg-sign -m Test"); @@ -208,33 +208,33 @@ void test_git_clone_and_describe() { // test git_describe is functional char *taginfo_none = git_describe("."); - OMC_ASSERT(taginfo_none != NULL, "should be a git hash, not NULL"); + STASIS_ASSERT(taginfo_none != NULL, "should be a git hash, not NULL"); system("git tag -a 1.0.0 -m Mock"); system("git push --tags origin"); char *taginfo = git_describe("."); - OMC_ASSERT(taginfo != NULL, "should be 1.0.0, not NULL"); - OMC_ASSERT(strcmp(taginfo, "1.0.0") == 0, "just-created tag was not described correctly"); + STASIS_ASSERT(taginfo != NULL, "should be 1.0.0, not NULL"); + STASIS_ASSERT(strcmp(taginfo, "1.0.0") == 0, "just-created tag was not described correctly"); chdir(".."); char *taginfo_outer = git_describe(repo); - OMC_ASSERT(taginfo_outer != NULL, "should be 1.0.0, not NULL"); - OMC_ASSERT(strcmp(taginfo_outer, "1.0.0") == 0, "just-created tag was not described correctly (out-of-dir invocation)"); + STASIS_ASSERT(taginfo_outer != NULL, "should be 1.0.0, not NULL"); + STASIS_ASSERT(strcmp(taginfo_outer, "1.0.0") == 0, "just-created tag was not described correctly (out-of-dir invocation)"); char *taginfo_bad = git_describe("abc1234_not_here_or_there"); - OMC_ASSERT(taginfo_bad == NULL, "a repository that shouldn't exist... exists and has a tag."); + STASIS_ASSERT(taginfo_bad == NULL, "a repository that shouldn't exist... exists and has a tag."); chdir(cwd); } void test_touch() { - OMC_ASSERT(touch("touchedfile.txt") == 0, "touch failed"); - OMC_ASSERT(access("touchedfile.txt", F_OK) == 0, "touched file does not exist"); + STASIS_ASSERT(touch("touchedfile.txt") == 0, "touch failed"); + STASIS_ASSERT(access("touchedfile.txt", F_OK) == 0, "touched file does not exist"); remove("touchedfile.txt"); } void test_find_program() { - OMC_ASSERT(find_program("willnotexist123") == NULL, "did not return NULL"); - OMC_ASSERT(find_program("find") != NULL, "program not available (OS dependent)"); + STASIS_ASSERT(find_program("willnotexist123") == NULL, "did not return NULL"); + STASIS_ASSERT(find_program("find") != NULL, "program not available (OS dependent)"); } static int file_readlines_callback_modify(size_t size, char **line) { @@ -276,16 +276,16 @@ void test_file_readlines() { result = file_readlines(filename, 0, 0, NULL); int i; for (i = 0; result[i] != NULL; i++); - OMC_ASSERT(num_chars(data, '\n') == i, "incorrect number of lines in data"); - OMC_ASSERT(strcmp(result[3], "see?\n") == 0, "last line in data is incorrect'"); + STASIS_ASSERT(num_chars(data, '\n') == i, "incorrect number of lines in data"); + STASIS_ASSERT(strcmp(result[3], "see?\n") == 0, "last line in data is incorrect'"); GENERIC_ARRAY_FREE(result); result = file_readlines(filename, 0, 0, file_readlines_callback_modify); - OMC_ASSERT(strcmp(result[3], "xxx?\n") == 0, "last line should be: 'xxx?\\n'"); + STASIS_ASSERT(strcmp(result[3], "xxx?\n") == 0, "last line should be: 'xxx?\\n'"); GENERIC_ARRAY_FREE(result); result = file_readlines(filename, 0, 0, file_readlines_callback_get_specific_line); - OMC_ASSERT(strcmp(result[0], "see?\n") == 0, "the first record of the result is not the last line of the file 'see?\\n'"); + STASIS_ASSERT(strcmp(result[0], "see?\n") == 0, "the first record of the result is not the last line of the file 'see?\\n'"); GENERIC_ARRAY_FREE(result); remove(filename); } @@ -302,7 +302,7 @@ void test_path_dirname() { strcpy(tmp, input); char *result = path_dirname(tmp); - OMC_ASSERT(strcmp(expected, result) == 0, NULL); + STASIS_ASSERT(strcmp(expected, result) == 0, NULL); } } @@ -315,7 +315,7 @@ void test_path_basename() { const char *input = data[i]; const char *expected = data[i + 1]; char *result = path_basename(input); - OMC_ASSERT(strcmp(expected, result) == 0, NULL); + STASIS_ASSERT(strcmp(expected, result) == 0, NULL); } } @@ -338,8 +338,8 @@ void test_expandpath() { strcat(path, DIR_SEP); char *expanded = expandpath(path); - OMC_ASSERT(startswith(expanded, home) > 0, expanded); - OMC_ASSERT(endswith(expanded, DIR_SEP) > 0, "the input string ends with a directory separator, the result did not"); + STASIS_ASSERT(startswith(expanded, home) > 0, expanded); + STASIS_ASSERT(endswith(expanded, DIR_SEP) > 0, "the input string ends with a directory separator, the result did not"); free(expanded); } @@ -361,12 +361,12 @@ void test_rmtree() { sprintf(mockfile, "%s/%zu.txt", path, i); if (mkdir(path, 0755)) { perror(path); - OMC_ASSERT(false, NULL); + STASIS_ASSERT(false, NULL); } touch(mockfile); } - OMC_ASSERT(rmtree(root) == 0, "rmtree should have been able to remove the directory"); - OMC_ASSERT(access(root, F_OK) < 0, "the directory is still present"); + STASIS_ASSERT(rmtree(root) == 0, "rmtree should have been able to remove the directory"); + STASIS_ASSERT(access(root, F_OK) < 0, "the directory is still present"); } void test_dirstack() { @@ -384,18 +384,18 @@ void test_dirstack() { pushd(data[i]); getcwd(cwd, PATH_MAX); } - OMC_ASSERT(dirstack_len == sizeof(data) / sizeof(*data), NULL); - OMC_ASSERT(strcmp(dirstack[0], cwd_workspace) == 0, NULL); + STASIS_ASSERT(dirstack_len == sizeof(data) / sizeof(*data), NULL); + STASIS_ASSERT(strcmp(dirstack[0], cwd_workspace) == 0, NULL); for (int i = 1; i < dirstack_len; i++) { - OMC_ASSERT(endswith(dirstack[i], data[i - 1]), NULL); + STASIS_ASSERT(endswith(dirstack[i], data[i - 1]), NULL); } for (size_t i = 0, x = dirstack_len - 1; x != 0 && i < sizeof(data) / sizeof(*data); i++, x--) { char *expected = strdup(dirstack[x]); popd(); getcwd(cwd, PATH_MAX); - OMC_ASSERT(strcmp(cwd, expected) == 0, NULL); + STASIS_ASSERT(strcmp(cwd, expected) == 0, NULL); free(expected); } } @@ -405,16 +405,16 @@ void test_pushd_popd() { chdir(cwd_workspace); rmtree(dname); - OMC_ASSERT(mkdir(dname, 0755) == 0, "directory should not exist yet"); - OMC_ASSERT(pushd(dname) == 0, "failed to enter directory"); + STASIS_ASSERT(mkdir(dname, 0755) == 0, "directory should not exist yet"); + STASIS_ASSERT(pushd(dname) == 0, "failed to enter directory"); char *cwd = getcwd(NULL, PATH_MAX); // we should be inside the test directory, not the starting directory - OMC_ASSERT(strcmp(cwd_workspace, cwd) != 0, ""); - OMC_ASSERT(popd() == 0, "return from directory failed"); + STASIS_ASSERT(strcmp(cwd_workspace, cwd) != 0, ""); + STASIS_ASSERT(popd() == 0, "return from directory failed"); char *cwd_after_popd = getcwd(NULL, PATH_MAX); - OMC_ASSERT(strcmp(cwd_workspace, cwd_after_popd) == 0, "should be the path where we started"); + STASIS_ASSERT(strcmp(cwd_workspace, cwd_after_popd) == 0, "should be the path where we started"); } void test_pushd_popd_suggested_workflow() { @@ -426,23 +426,23 @@ void test_pushd_popd_suggested_workflow() { if (!mkdir(dname, 0755)) { if (!pushd(dname)) { char *cwd = getcwd(NULL, PATH_MAX); - OMC_ASSERT(strcmp(cwd_workspace, cwd) != 0, NULL); + STASIS_ASSERT(strcmp(cwd_workspace, cwd) != 0, NULL); // return from dir popd(); free(cwd); } // cwd should be our starting directory char *cwd = getcwd(NULL, PATH_MAX); - OMC_ASSERT(strcmp(cwd_workspace, cwd) == 0, NULL); + STASIS_ASSERT(strcmp(cwd_workspace, cwd) == 0, NULL); } else { - OMC_ASSERT(false, "mkdir function failed"); + STASIS_ASSERT(false, "mkdir function failed"); } } int main(int argc, char *argv[]) { - OMC_TEST_BEGIN_MAIN(); - OMC_TEST_FUNC *tests[] = { + STASIS_TEST_BEGIN_MAIN(); + STASIS_TEST_FUNC *tests[] = { test_listdir, test_redact_sensitive, test_fix_tox_conf, @@ -469,11 +469,11 @@ int main(int argc, char *argv[]) { chdir(ws); getcwd(cwd_workspace, sizeof(cwd_workspace) - 1); - OMC_TEST_RUN(tests); + STASIS_TEST_RUN(tests); chdir(cwd_start); if (rmtree(cwd_workspace)) { perror(cwd_workspace); } - OMC_TEST_END_MAIN(); + STASIS_TEST_END_MAIN(); }
\ No newline at end of file diff --git a/tests/testing.h b/tests/testing.h index 35bfbd2..15bd208 100644 --- a/tests/testing.h +++ b/tests/testing.h @@ -1,16 +1,16 @@ -#ifndef OMC_TESTING_H -#define OMC_TESTING_H -#include "omc.h" -#define OMC_TEST_RUN_MAX 10000 -#define OMC_TEST_SUITE_FATAL 1 -#define OMC_TEST_SUITE_SKIP 127 +#ifndef STASIS_TESTING_H +#define STASIS_TESTING_H +#include "core.h" +#define STASIS_TEST_RUN_MAX 10000 +#define STASIS_TEST_SUITE_FATAL 1 +#define STASIS_TEST_SUITE_SKIP 127 #ifndef __FILE_NAME__ #define __FILE_NAME__ __FILE__ #endif -typedef void(OMC_TEST_FUNC)(); -struct omc_test_result_t { +typedef void(STASIS_TEST_FUNC)(); +struct stasis_test_result_t { const char *filename; const char *funcname; int lineno; @@ -18,36 +18,36 @@ struct omc_test_result_t { const char *msg_reason; const int status; const int skip; -} omc_test_results[OMC_TEST_RUN_MAX]; -size_t omc_test_results_i = 0; +} stasis_test_results[STASIS_TEST_RUN_MAX]; +size_t stasis_test_results_i = 0; -void omc_testing_record_result(struct omc_test_result_t result); +void stasis_testing_record_result(struct stasis_test_result_t result); -void omc_testing_record_result(struct omc_test_result_t result) { - memcpy(&omc_test_results[omc_test_results_i], &result, sizeof(result)); - omc_test_results_i++; +void stasis_testing_record_result(struct stasis_test_result_t result) { + memcpy(&stasis_test_results[stasis_test_results_i], &result, sizeof(result)); + stasis_test_results_i++; } -int omc_testing_has_failed() { - for (size_t i = 0; i < omc_test_results_i; i++) { - if (omc_test_results[i].status == false) { +int stasis_testing_has_failed() { + for (size_t i = 0; i < stasis_test_results_i; i++) { + if (stasis_test_results[i].status == false) { return 1; } } return 0; } -void omc_testing_record_result_summary() { +void stasis_testing_record_result_summary() { size_t failed = 0; size_t skipped = 0; size_t passed = 0; int do_message; static char status_msg[255] = {0}; - for (size_t i = 0; i < omc_test_results_i; i++) { - if (omc_test_results[i].status && omc_test_results[i].skip) { + for (size_t i = 0; i < stasis_test_results_i; i++) { + if (stasis_test_results[i].status && stasis_test_results[i].skip) { strcpy(status_msg, "SKIP"); do_message = 1; skipped++; - } else if (!omc_test_results[i].status) { + } else if (!stasis_test_results[i].status) { strcpy(status_msg, "FAIL"); do_message = 1; failed++; @@ -58,19 +58,19 @@ void omc_testing_record_result_summary() { } fprintf(stdout, "[%s] %s:%d :: %s() => %s", status_msg, - omc_test_results[i].filename, - omc_test_results[i].lineno, - omc_test_results[i].funcname, - omc_test_results[i].msg_assertion); + stasis_test_results[i].filename, + stasis_test_results[i].lineno, + stasis_test_results[i].funcname, + stasis_test_results[i].msg_assertion); if (do_message) { - fprintf(stdout, "\n \\_ %s", omc_test_results[i].msg_reason); + fprintf(stdout, "\n \\_ %s", stasis_test_results[i].msg_reason); } fprintf(stdout, "\n"); } - fprintf(stdout, "\n[UNIT] %zu tests passed, %zu tests failed, %zu tests skipped out of %zu\n", passed, failed, skipped, omc_test_results_i); + fprintf(stdout, "\n[UNIT] %zu tests passed, %zu tests failed, %zu tests skipped out of %zu\n", passed, failed, skipped, stasis_test_results_i); } -char *omc_testing_read_ascii(const char *filename) { +char *stasis_testing_read_ascii(const char *filename) { struct stat st; if (stat(filename, &st)) { perror(filename); @@ -96,7 +96,7 @@ char *omc_testing_read_ascii(const char *filename) { return result; } -int omc_testing_write_ascii(const char *filename, const char *data) { +int stasis_testing_write_ascii(const char *filename, const char *data) { FILE *fp; fp = fopen(filename, "w+"); if (!fp) { @@ -114,18 +114,18 @@ int omc_testing_write_ascii(const char *filename, const char *data) { return 0; } -#define OMC_TEST_BEGIN_MAIN() do { \ +#define STASIS_TEST_BEGIN_MAIN() do { \ setenv("PYTHONUNBUFFERED", "1", 1); \ fflush(stdout); \ fflush(stderr); \ setvbuf(stdout, NULL, _IONBF, 0); \ setvbuf(stderr, NULL, _IONBF, 0); \ - atexit(omc_testing_record_result_summary); \ + atexit(stasis_testing_record_result_summary); \ } while (0) -#define OMC_TEST_END_MAIN() do { return omc_testing_has_failed(); } while (0) +#define STASIS_TEST_END_MAIN() do { return stasis_testing_has_failed(); } while (0) -#define OMC_ASSERT(COND, REASON) do { \ - omc_testing_record_result((struct omc_test_result_t) { \ +#define STASIS_ASSERT(COND, REASON) do { \ + stasis_testing_record_result((struct stasis_test_result_t) { \ .filename = __FILE_NAME__, \ .funcname = __FUNCTION__, \ .lineno = __LINE__, \ @@ -134,8 +134,8 @@ int omc_testing_write_ascii(const char *filename, const char *data) { .msg_reason = REASON } ); \ } while (0) -#define OMC_ASSERT_FATAL(COND, REASON) do { \ - omc_testing_record_result((struct omc_test_result_t) { \ +#define STASIS_ASSERT_FATAL(COND, REASON) do { \ + stasis_testing_record_result((struct stasis_test_result_t) { \ .filename = __FILE_NAME__, \ .funcname = __FUNCTION__, \ .lineno = __LINE__, \ @@ -143,13 +143,13 @@ int omc_testing_write_ascii(const char *filename, const char *data) { .msg_assertion = "ASSERT FATAL (" #COND ")", \ .msg_reason = REASON } \ ); \ - if (omc_test_results[omc_test_results_i ? omc_test_results_i - 1 : omc_test_results_i].status == false) {\ - exit(OMC_TEST_SUITE_FATAL); \ + if (stasis_test_results[stasis_test_results_i ? stasis_test_results_i - 1 : stasis_test_results_i].status == false) {\ + exit(STASIS_TEST_SUITE_FATAL); \ } \ } while (0) -#define OMC_SKIP_IF(COND, REASON) do { \ - omc_testing_record_result((struct omc_test_result_t) { \ +#define STASIS_SKIP_IF(COND, REASON) do { \ + stasis_testing_record_result((struct stasis_test_result_t) { \ .filename = __FILE_NAME__, \ .funcname = __FUNCTION__, \ .lineno = __LINE__, \ @@ -158,12 +158,12 @@ int omc_testing_write_ascii(const char *filename, const char *data) { .msg_assertion = "SKIP (" #COND ")", \ .msg_reason = REASON } \ ); \ - if (omc_test_results[omc_test_results_i ? omc_test_results_i - 1 : omc_test_results_i].skip == true) {\ + if (stasis_test_results[stasis_test_results_i ? stasis_test_results_i - 1 : stasis_test_results_i].skip == true) {\ return; \ } \ } while (0) -#define OMC_TEST_RUN(X) do { \ +#define STASIS_TEST_RUN(X) do { \ for (size_t i = 0; i < sizeof(X) / sizeof(*X); i++) { \ if (X[i]) { \ X[i](); \ @@ -171,4 +171,4 @@ int omc_testing_write_ascii(const char *filename, const char *data) { } \ } while (0) -#endif //OMC_TESTING_H +#endif //STASIS_TESTING_H |