From a4906079ff05e1d0466b47530dacf2531b24c902 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Mon, 21 Dec 2020 04:34:21 +0100 Subject: [PATCH] Import the "distcheck" test from DeforaOS configure --- project.conf | 3 +- tests/distcheck.sh | 107 +++++++++++++++++++++++++++++++++++++++++++++ tests/project.conf | 10 ++++- 3 files changed, 116 insertions(+), 4 deletions(-) create mode 100755 tests/distcheck.sh diff --git a/project.conf b/project.conf index eb10abb..0139948 100644 --- a/project.conf +++ b/project.conf @@ -9,8 +9,7 @@ dist=Makefile,COPYING #targets [tests] type=command -command=cd tests && (if [ -n "$(OBJDIR)" ]; then $(MAKE) OBJDIR="$(OBJDIR)tests/" "$(OBJDIR)tests/clint.log" "$(OBJDIR)tests/fixme.log"; else $(MAKE) clint.log fixme.log; fi) -depends=all +command=cd tests && (if [ -n "$(OBJDIR)" ]; then $(MAKE) OBJDIR="$(OBJDIR)tests/" "$(OBJDIR)tests/clint.log" "$(OBJDIR)tests/distcheck.log" "$(OBJDIR)tests/fixme.log"; else $(MAKE) clint.log distcheck.log fixme.log; fi) enabled=0 phony=1 diff --git a/tests/distcheck.sh b/tests/distcheck.sh new file mode 100755 index 0000000..5e158d8 --- /dev/null +++ b/tests/distcheck.sh @@ -0,0 +1,107 @@ +#!/bin/sh +#$Id$ +#Copyright (c) 2020 Pierre Pronchery +#This file is part of DeforaOS System libSystem +#All rights reserved. +# +#Redistribution and use in source and binary forms, with or without +#modification, are permitted provided that the following conditions are +#met: +# +#1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +#2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +#IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +#TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +#PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +#HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +#SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +#TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +#PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +#NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + +#variables +CONFIGSH="${0%/distcheck.sh}/../config.sh" +CFLAGS= +LDFLAGS= +PROGNAME="distcheck.sh" +TARGET="tests.log" +#executables +DATE="date" +[ -n "$MAKE" ] || MAKE="make" +MKDIR="mkdir -p" +MKTEMP="mktemp" +RM="rm -f" + +[ -f "$CONFIGSH" ] && . "$CONFIGSH" + + +#distcheck +_distcheck() +{ + (cd .. && $MAKE distcheck) +} + + +#date +_date() +{ + if [ -n "$SOURCE_DATE_EPOCH" ]; then + TZ=UTC $DATE -d "@$SOURCE_DATE_EPOCH" '+%a %b %d %T %Z %Y' + else + $DATE + fi +} + + +#usage +_usage() +{ + echo "Usage: $PROGNAME [-c] target..." 1>&2 + return 1 +} + + +#main +clean=0 +while getopts "cO:P:" name; do + case "$name" in + c) + clean=1 + ;; + O) + export "${OPTARG%%=*}"="${OPTARG#*=}" + ;; + P) + #XXX ignored + ;; + ?) + _usage + exit $? + ;; + esac +done +shift $((OPTIND - 1)) +if [ $# -eq 0 ]; then + _usage + exit $? +fi + +while [ $# -ne 0 ]; do + target="$1" + shift + + [ "$clean" -eq 0 ] || break + + (_date; echo; _distcheck) > "$target" || exit 2 +done +exit 0 diff --git a/tests/project.conf b/tests/project.conf index 0ed81fa..9dc59d0 100644 --- a/tests/project.conf +++ b/tests/project.conf @@ -1,5 +1,5 @@ -targets=clint.log,fixme.log -dist=Makefile,clint.sh,fixme.sh +targets=clint.log,distcheck.log,fixme.log +dist=Makefile,clint.sh,distcheck.sh,fixme.sh #targets [clint.log] @@ -8,6 +8,12 @@ script=./clint.sh depends=clint.sh enabled=0 +[distcheck.log] +type=script +script=./distcheck.sh +depends=distcheck.sh +enabled=0 + [fixme.log] type=script script=./fixme.sh