#! /bin/sh # Copyright (C) 2011 The Libphonenumber Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Author: Philippe Liard # Countinuous integration script that tests the different versions and # configurations of libphonenumber. # Check geocoding resource files encoding. (find resources/geocoding -type f | xargs file | egrep -v 'UTF-8|ASCII') && exit 1 # Test the C++ version with the provided CMake parameter. CXX=g++ INSTALL_PREFIX=/tmp/libphonenumber test_cpp_version() { CC_TEST_FILE=`mktemp`.cc CC_TEST_BINARY=`mktemp` CMAKE_FLAGS="$1" LD_FLAGS="-L${INSTALL_PREFIX}/lib -lphonenumber -lboost_thread $2" # Write the program that tests the installation of the library to a temporary # source file. > $CC_TEST_FILE echo ' #include #include // Include all the public headers. #include #include #include #include #include using i18n::phonenumbers::AsYouTypeFormatter; using i18n::phonenumbers::PhoneNumberUtil; int main() { PhoneNumberUtil* const phone_util = PhoneNumberUtil::GetInstance(); const scoped_ptr asytf( phone_util->GetAsYouTypeFormatter("US")); assert(phone_util != NULL); assert(asytf != NULL); }' # Run the build and tests. ( set +e rm -rf cpp/build /tmp/libphonenumber mkdir cpp/build /tmp/libphonenumber cd cpp/build cmake "${CMAKE_FLAGS}" -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX .. make test make install $CXX -o $CC_TEST_BINARY $CC_TEST_FILE -I${INSTALL_PREFIX}/include $LD_FLAGS LD_LIBRARY_PATH="${INSTALL_PREFIX}/lib" $CC_TEST_BINARY ) STATUS=$? # Remove the temporary files. rm -f $CC_TEST_FILE rm -f $CC_TEST_BINARY [ $STATUS -ne 0 ] && exit $STATUS } BASE_LIBS='-licuuc -lprotobuf' test_cpp_version '' "$BASE_LIBS" test_cpp_version '-DUSE_ICU_REGEXP=ON' "$BASE_LIBS" test_cpp_version '-DUSE_LITE_METADATA=ON' '-licuuc -lprotobuf-lite' test_cpp_version '-DUSE_RE2=ON' "$BASE_LIBS -lre2" test_cpp_version '-DUSE_STD_MAP=ON' "$BASE_LIBS" # Test Java version using Ant. (cd java && ant clean jar && ant junit) || exit $? # Test Java version using Maven. (cd java && mvn clean package) || exit $? # Test build tools. (cd tools/java && mvn clean package) || exit $?