summaryrefslogtreecommitdiffstats
path: root/server/tests/test_spice_version.sh
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/test_spice_version.sh')
-rwxr-xr-xserver/tests/test_spice_version.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/server/tests/test_spice_version.sh b/server/tests/test_spice_version.sh
new file mode 100755
index 00000000..5e5b173f
--- /dev/null
+++ b/server/tests/test_spice_version.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+ROOT=$(dirname $0)/../../
+INCLUDE="-I$ROOT -I$ROOT/spice-common/spice-protocol/"
+TEMP=`mktemp -d`
+
+cat > $TEMP/check_version.c <<EOF
+#include <stdio.h>
+#include "server/spice.h"
+
+int main(void)
+{
+ printf("%d.%d.%d\n", SPICE_SERVER_VERSION >> 16,
+ (SPICE_SERVER_VERSION >> 8) & 0xff,
+ SPICE_SERVER_VERSION & 0xff);
+ return 0;
+}
+EOF
+
+if ! gcc -o $TEMP/check_version $INCLUDE $TEMP/check_version.c ; then
+ echo "failed to compile tester"
+ exit -1
+fi
+
+INCLUDE_VERSION=`$TEMP/check_version`
+rm -Rf $TEMP
+
+CONF_MAJOR=`cat $ROOT/configure.ac | grep 'm4_define(\[SPICE_MAJOR\]' | sed -e 's/m4_define(\[SPICE_MAJOR\],\(.*\))/\1/'`
+CONF_MINOR=`cat $ROOT/configure.ac | grep 'm4_define(\[SPICE_MINOR\]' | sed -e 's/m4_define(\[SPICE_MINOR\],\(.*\))/\1/'`
+CONF_MICRO=`cat $ROOT/configure.ac | grep 'm4_define(\[SPICE_MICRO\]' | sed -e 's/m4_define(\[SPICE_MICRO\],\(.*\))/\1/'`
+CONF_VERSION=`printf %d.%d.%d $CONF_MAJOR $CONF_MINOR $CONF_MICRO`
+if [ $CONF_VERSION != $INCLUDE_VERSION ] ; then
+ echo "BAD: version in server/spice.h"
+ echo $INCLUDE_VERSION
+ echo "doesn't match version in configure.ac"
+ echo $CONF_VERSION
+ echo "please fix before doing a release"
+ exit 1
+else
+ echo "OK: both versions are $CONF_VERSION"
+fi
+exit 0