Skip to content

Commit

Permalink
wip on ci tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bcumming committed Aug 22, 2023
1 parent a46eb87 commit 98f7c95
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 0 deletions.
39 changes: 39 additions & 0 deletions .github/workflows/test-cli.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: builds
on: [push, pull_request]

jobs:
makefile:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: setup
run: |
sudo apt-get update -y
sudo apt-get install -y util-linux libmount-dev squashfs-tools wget
sudo mkdir -p /user-environment
sudo mkdir -p /user-profilers
sudo mkdir -p /user-tools
# install squashfs-mount
(
dd=$(mktemp -d)
cd "$dd"
git clone --depth=1 [email protected]:eth-cscs/squashfs-mount.git
cd squashfs-mount
sudo make install-suid
)
# install bash-bats
(
dd=$(mktemp -d)
cd "$dd"
sudo curl -L https://github.com/bats-core/bats-core/archive/refs/tags/v1.9.0.tar.gz | sudo tar xz
sudo mkdir bats-helpers
sudo git clone --depth 1 https://github.com/bats-core/bats-assert.git bats-helpers/bats-assert
sudo git clone --depth 1 https://github.com/bats-core/bats-support.git bats-helpers/bats-support
)
- name: build
run: |
sudo make install-suid
- name: test
run: |
export BATS_LIB_PATH=/bats-helpers
/bats-core-1.9.0/bin/bats ci/tests.bats
65 changes: 65 additions & 0 deletions ci/tests.bats
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/bin/bash

function setup() {
bats_load_library bats-support
bats_load_library bats-assert
SQFSDIR=$(mktemp -d)
export SQFSDIR
dd=$(mktemp -d)
(
umask 022
cd "$dd" || exit
mkdir spack-install
echo "This is file A" >> spack-install/fileA.txt
)

mksquashfs "$dd" ${SQFSDIR}/binaries.sqfs -quiet -noappend && rm -r "$dd"

dd=$(mktemp -d)
(
umask 022
cd "$dd" || exit
mkdir profilers
echo "profiler stack" >> profilers/fileB.txt
)
mksquashfs "$dd" ${SQFSDIR}/profilers.sqfs -quiet -noappend && rm -r "$dd"

dd=$(mktemp -d)
(
umask 022
cd "$dd" || exit
mkdir tools
echo "tools stack" >> tools/fileB.txt
)
mksquashfs "$dd" ${SQFSDIR}/tools.sqfs -quiet -noappend && rm -r "$dd"
}

function teardown() {
rm -r ${SQFSDIR}
}


@test "mount_single_image" {
run squashfs-mount ${SQFSDIR}/binaries.sqfs -- cat /user-environment/spack-install/fileA.txt
}

#@test "mount_images" {
# run squashfs-mount ${SQFSDIR}/binaries.sqfs:/user-environment ${SQFSDIR}/profilers.sqfs:/user-profilers ${SQFSDIR}/tools.sqfs:/user-tools -- cat /user-environment/spack-install/fileA.txt
#}


#@test "check_environment_variable" {
# run bash -c 'squashfs-mount ${SQFSDIR}/binaries.sqfs:/user-environment ${SQFSDIR}/profilers.sqfs:/user-profilers ${SQFSDIR}/tools.sqfs:/user-tools -- (env | grep UENV_MOUNT_LIST)'
}

#@test "invalid_argument" {
# run squashfs-mount invalid_argument -- true
# assert_failure 1
#}

#@test "noop" {
# # check that no namespace is unshared, when nothing is mounted
# original_mnt=$(readlink /proc/$$/ns/mnt)
# run bash -c 'squashfs-mount -- readlink /proc/$$/ns/mnt'
# assert_output --partial ${original_mnt}
#}

0 comments on commit 98f7c95

Please sign in to comment.