blob: f41e465c38d0b2882a6d45bcbde4bb522614cc90 [file] [log] [blame]
Andres Amaya Garcia4c1e2ec2018-01-10 11:03:45 +00001#! /usr/bin/env sh
Manuel Pégourié-Gonnardb3b8e432015-02-13 14:52:19 +00002
Andres Amaya Garcia4c1e2ec2018-01-10 11:03:45 +00003# This file is part of mbed TLS (https://tls.mbed.org)
4#
5# Copyright (c) 2018, ARM Limited, All Rights Reserved
6#
7# Purpose
8#
9# Check if generated files are up-to-date.
Manuel Pégourié-Gonnardb3b8e432015-02-13 14:52:19 +000010
11set -eu
12
13if [ -d library -a -d include -a -d tests ]; then :; else
14 echo "Must be run from mbed TLS root" >&2
15 exit 1
16fi
17
18check()
19{
Andres Amaya Garcia4c1e2ec2018-01-10 11:03:45 +000020 SCRIPT=$1
21 TO_CHECK=$2
22 PATTERN=""
Andres AGc4ec7162018-04-11 21:13:20 -050023 FILES=""
Manuel Pégourié-Gonnardb3b8e432015-02-13 14:52:19 +000024
Andres Amaya Garcia4c1e2ec2018-01-10 11:03:45 +000025 if [ -d $TO_CHECK ]; then
26 for FILE in $TO_CHECK/*; do
27 FILES="$FILE $FILES"
28 done
29 else
30 FILES=$TO_CHECK
31 fi
32
33 for FILE in $FILES; do
34 cp $FILE $FILE.bak
35 done
36
Manuel Pégourié-Gonnardb3b8e432015-02-13 14:52:19 +000037 $SCRIPT
Andres Amaya Garcia4c1e2ec2018-01-10 11:03:45 +000038
39 # Compare the script output to the old files and remove backups
40 for FILE in $FILES; do
41 if ! diff $FILE $FILE.bak >/dev/null 2>&1; then
42 echo "'$FILE' was either modified or deleted by '$SCRIPT'"
43 exit 1
44 fi
45 mv $FILE.bak $FILE
46
47 if [ -d $TO_CHECK ]; then
48 # Create a grep regular expression that we can check against the
49 # directory contents to test whether new files have been created
50 if [ -z $PATTERN ]; then
51 PATTERN="$(basename $FILE)"
52 else
53 PATTERN="$PATTERN\|$(basename $FILE)"
54 fi
55 fi
56 done
57
58 if [ -d $TO_CHECK ]; then
59 # Check if there are any new files
60 if ls -1 $TO_CHECK | grep -v "$PATTERN" >/dev/null 2>&1; then
61 echo "Files were created by '$SCRIPT'"
62 exit 1
63 fi
64 fi
Manuel Pégourié-Gonnardb3b8e432015-02-13 14:52:19 +000065}
66
Andres Amaya Garcia4c1e2ec2018-01-10 11:03:45 +000067check scripts/generate_errors.pl library/error.c
Jaeden Amero7cb47de2019-02-28 11:37:23 +000068check scripts/generate_query_config.pl programs/test/query_config.c
Andres Amaya Garcia4c1e2ec2018-01-10 11:03:45 +000069check scripts/generate_features.pl library/version_features.c
70check scripts/generate_visualc_files.pl visualc/VS2010