start c++ cleanness test

This commit is contained in:
George Danchev 2011-07-05 09:18:31 +00:00
parent 047955a1bb
commit 9e7377c850
2 changed files with 130 additions and 0 deletions

107
releng/releng_cxx Executable file
View File

@ -0,0 +1,107 @@
#!/bin/bash
set -e
START_DIR_DONT_CHANGE=`pwd`
SELF=$(basename "$0")
GEN_DATA_DIR=releng_generated_data/${SELF}
KEEP=0
SAMPLE_CODE_DIR=releng_generated_data
CC=g++
CC_FLAFS=" -I ../libisoburn -L ../libisoburn/.libs/ -lisoburn "
#####################################################################
print_help() {
cat << HLP
Usage:
$0 -help
#
$0 -rc [-keep]
# cleanup test generated data directory and exit
$0 -cleanup
HLP
}
#####################################################################
cleanup() {
if [ ${KEEP} -eq 0 ]; then
# safety net, just in case -> we want to be in the starting
# directory before removing whatever self-generated stuff
if [ -d "${GEN_DATA_DIR}" ]; then
cd "${START_DIR_DONT_CHANGE}" || exit 2
rm -rf ${GEN_DATA_DIR}
printf "${SELF}: Removed (self-generated) %s\n" ${GEN_DATA_DIR}
else
printf "${SELF}: ${GEN_DATA_DIR} does not exist. Nothing to clean.\n"
fi
else
printf "${SELF}: Leaving (self-generated) %s\n" ${GEN_DATA_DIR}
fi
}
#####################################################################
# help
if [ ! "${1}" ]; then
print_help && exit 3
#
elif [ "${1}" == "-cleanup" ]; then
cleanup
exit 0
#
elif [ "${1}" == "-rc" -a "${2}" == "-keep" ]; then
KEEP=1
elif [ "${1}" == "-rc" -a ! "${2}" ]; then
KEEP=0
# the rest
else
print_help && exit 4
fi
#####################################################################
# check data dir
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -cleanup' to remove.\n"
exit 5
else
mkdir "${GEN_DATA_DIR}"
fi
# check compiler
if ! which "${CC}" >/dev/null 2>&1; then
printf "\n${SELF}: Not found: ${CC}. Install ${CC}.\n"
cleanup
exit 6
fi
# process sample code tests
if test -f "${SAMPLE_CODE_DIR}"/*.cpp; then
for SMPL in `ls "${SAMPLE_CODE_DIR}"/*.cpp`; do
CMD_CPL="${CC} ${CC_FLAGS} -o ${SMPL}.obj ${SMPL}"
printf "\n${SELF}: ${CMD_CPL}\n"
${CMD_CPL}
printf "${SELF}: Running ./${SMPL}.obj"
./${SMPL}.obj
RET_SMPL="$?"
case ${RET_SMPL} in
0)
printf "...ok\n"
;;
*)
printf "exit code: ${RET_SMPL}\n"
cleanup
exit 7
;;
esac
done
else
printf "\n${SELF}: No C++ code samples found in ${SAMPLE_CODE_DIR}\n"
fi
# clean
cleanup
exit 0

View File

@ -0,0 +1,23 @@
#include <iostream>
#include <inttypes.h>
#if __WORDSIZE == 32
#define _LARGEFILE_SOURCE 1
#define _FILE_OFFSET_BITS 64
#endif
#include "libisoburn/xorriso.h"
using namespace std;
int main()
{
cout
<< " major:" << Xorriso_header_version_majoR
<< " minor:" << Xorriso_header_version_minoR
<< " micro:" << Xorriso_header_version_micrO
;
// << endl;
return 0;
}