From 751fd3fb0a708f3eb38a19247c88a4b2cdf577c8 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 11 Feb 2016 23:49:54 +0100 Subject: [PATCH] common: do not crash if the java_paths are not what is expected Many commands work without the JDK installed, and it is also possible that someone is using only JDK 8 or 9. --- fdroidserver/common.py | 2 ++ tests/run-tests | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 120ef2aa..4772abc8 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -157,6 +157,8 @@ def fill_config_defaults(thisconfig): thisconfig['java_paths'][m.group(1)] = d for java_version in ('7', '8', '9'): + if not java_version in thisconfig['java_paths']: + continue java_home = thisconfig['java_paths'][java_version] jarsigner = os.path.join(java_home, 'bin', 'jarsigner') if os.path.exists(jarsigner): diff --git a/tests/run-tests b/tests/run-tests index c770091f..7629f431 100755 --- a/tests/run-tests +++ b/tests/run-tests @@ -156,6 +156,41 @@ fi set -e +#------------------------------------------------------------------------------# +echo_header "ensure commands that don't need the JDK work without a JDK configed" + +REPOROOT=`create_test_dir` +cd $REPOROOT +mkdir repo +mkdir metadata +echo "License:GPL" >> metadata/fake.txt +echo "Summary:Yup still fake" >> metadata/fake.txt +echo "Categories:Internet" >> metadata/fake.txt +echo "Description:" >> metadata/fake.txt +echo "this is fake" >> metadata/fake.txt +echo "." >> metadata/fake.txt + +# fake that no JDKs are available +echo 'java_paths = {}' > config.py + +LOCAL_COPY_DIR=`create_test_dir`/fdroid +mkdir -p $LOCAL_COPY_DIR/repo +echo "local_copy_dir = '$LOCAL_COPY_DIR'" >> config.py + +$fdroid checkupdates +$fdroid gpgsign +$fdroid lint +$fdroid readmeta +$fdroid rewritemeta fake +$fdroid server update +$fdroid scanner + +# run these to get their output, but the are not setup, so don't fail +$fdroid build || true +$fdroid import || true +$fdroid install || true + + #------------------------------------------------------------------------------# echo_header "create a source tarball and use that to build a repo"