From 87af6cd2b29aeedfa98dc7abcb56121c5017cc7a Mon Sep 17 00:00:00 2001 From: Esko Pakarinen <esko.pakarinen@utu.fi> Date: Sun, 16 Jan 2022 17:46:03 +0200 Subject: [PATCH] Added a basic test you can run from the source dir with devops -c tests/test.json --- Makefile | 5 ++-- tests/aux/Makefile.aux | 2 ++ tests/aux/install-package | 9 +++++++ tests/test.json | 50 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 tests/aux/Makefile.aux create mode 100755 tests/aux/install-package create mode 100644 tests/test.json diff --git a/Makefile b/Makefile index 7be8be0..e6c463e 100644 --- a/Makefile +++ b/Makefile @@ -11,8 +11,9 @@ install: install centr /usr/bin/centr clean: - rm *.o - rm centr + @rm -f *.o + @rm -f centr + @rm -f centr.local centr: buf.o pages.o centr.c gcc centr.c buf.o pages.o -o centr diff --git a/tests/aux/Makefile.aux b/tests/aux/Makefile.aux new file mode 100644 index 0000000..9ae52d0 --- /dev/null +++ b/tests/aux/Makefile.aux @@ -0,0 +1,2 @@ +centr.local: buf.o pages.o centr.local.c + gcc centr.local.c buf.o pages.o -o centr.local diff --git a/tests/aux/install-package b/tests/aux/install-package new file mode 100755 index 0000000..db4d6d4 --- /dev/null +++ b/tests/aux/install-package @@ -0,0 +1,9 @@ +#!/bin/bash + +PN=$( head -c 32 /dev/urandom|base64|sed -e 's/[/+=]//g' ) +VERSION=$( echo "3k $( head -c 1 /dev/urandom|hexdump -d|head -n 1|sed -e 's/[^ ]*[ ]*//'|sed -e 's/ //g' ) $( head -c 1 /dev/urandom|hexdump -d|head -n 1|sed -e 's/[^ ]*[ ]*//' ) / p"|dc ) + +#echo "${PN}-${VERSION}" +mkdir -p "R/library/${1}/${PN}" + +echo "Version: ${VERSION}" > "R/library/${1}/${PN}/DESCRIPTION" diff --git a/tests/test.json b/tests/test.json new file mode 100644 index 0000000..4b4cae0 --- /dev/null +++ b/tests/test.json @@ -0,0 +1,50 @@ +{ + "name" : "centR tests", + "what is this" : " These are the tests to be run after centr is built ", + + "serial_tasks" : [ + { + "name" : "Build centr.local", + "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" }], + "actions" : ["cat repo/centr.c|sed -e 's/\"\\/appl\\/centr\\/repo/\"\\/tmp\\/fakerepo/' > repo/centr.local.c", + "cat repo/Makefile repo/tests/aux/Makefile.aux > repo/Makefile.tmp", + "cd repo","make -f Makefile.tmp centr.local", "rm -f Makefile.tmp", "rm -f centr.local.c", + "cd .." + ], + "success_conditions" : [ { "name" : "centr.local exists", "type" : "file_exists", "file" : "repo/centr.local" } ] + }, + { + "name" : "Build fake repo", + "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" }, + { "type":"dir", "target":"/tmp", "as":"tmp", "mode":"link" } + ], + "actions" : [ "mkdir tmp/fakerepo", "touch tmp/fakerepo/mine" ], + "success_conditions" : [ { "name" : "fake repo exists", "type" : "file_exists", "file" : "tmp/fakerepo/mine" } ] + }, + { + "name" : "Generate and donate fake packages", + "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" }, + { "type":"dir", "target":"/tmp", "as":"tmp", "mode":"link" } + ], + "actions" : [ "for n in {1..365}; do repo/tests/aux/install-package 6.6; done", "repo/centr.local donate", "repo/centr.local dump|sort -k 1 > repo/list1" ], + "success_conditions" : [ { "name" : "no errors", "type" : "exitcode0" } ] + }, + { + "name" : "Rebuild project from previous manifest", + "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" }, + { "type":"dir", "target":"/tmp", "as":"tmp", "mode":"link" } + ], + "actions" : [ "cat repo/list1|repo/centr.local rebuild", "repo/centr.local dump|sort -k 1 > repo/list2", "diff repo/list1 repo/list2 > repo/diffresult" ], + "success_conditions" : [ {"name" : "rebuilt project is the same", "type":"md5sum", "file":"repo/diffresult", "checksum":"d41d8cd98f00b204e9800998ecf8427e" } ,{ "name" : "no errors", "type" : "exitcode0" } ] + }, + { + "name" : "Remove unnecessary files", + "requirements" : [{ "type":"dir", "target":".", "as":"repo", "mode":"link" }, + { "type":"dir", "target":"/tmp", "as":"tmp", "mode":"link" } + ], + "actions" : [ "rm -f repo/list1 repo/list2 repo/diffresult repo/centr.local", "chmod -R u+w tmp/fakerepo" ,"rm -rf tmp/fakerepo" ], + "success_conditions" : [ { "name" : "no errors", "type" : "exitcode0" } ] + } + + ] +} -- GitLab