Hans-Christoph Steiner
81b55e0d8f
tests: use wc -m to support BSD and macOS
2021-01-07 17:09:44 +01:00
Hans-Christoph Steiner
531c36f310
fix typo in ac3eb0e641
2020-12-14 23:08:32 +01:00
Hans-Christoph Steiner
ac3eb0e641
tests: fix mirror test setup on macOS
...
I guess macOS has an ancient version of bash which does not include
support for $RANDOM
2020-12-14 20:33:28 +01:00
Hans-Christoph Steiner
9cfd12f9ed
tests: include test http.server.log in the test's tmp dir
2020-12-10 10:45:28 +01:00
Hans-Christoph Steiner
77db3ea709
mirror: if index is verified, save a copy in the local mirror
2020-12-03 21:48:37 +01:00
Hans-Christoph Steiner
a9fdb5b401
init: switch to config.yml as the default format
2020-10-23 14:20:49 +02:00
Hans-Christoph Steiner
48e11ea3f1
run-tests: exit with error if no test APKs are found
...
There must be at least one APK available for this test suite to work, for
example, this test:
grep -F '<application id=' repo/index.xml
This can't be easily implemented using an env vir beccause the while
loop is running in a pipe, so a different process.
copy_apks_into_repo is used with throwaway tmp dirs, so the stamp file
should work well.
2020-10-22 09:51:12 +02:00
Hans-Christoph Steiner
17f6a778ba
deploy: move server.py to deploy.py and remove aliases
...
closes #832
2020-10-21 11:38:49 +02:00
Hans-Christoph Steiner
ae3c9c0552
change make_current_version_link to default to False
...
This is semi-broken and barely used, it should be off by default for 2.0.
2020-10-08 08:10:36 +02:00
Hans-Christoph Steiner
9f394ead4b
fix test suite for non-GNU: remove GNUisms
...
* date --date= does not exist on BSD
2020-10-01 22:59:35 +02:00
Hans-Christoph Steiner
8c1cf724e1
init: force keystore to PKCS12 format
...
Java 8 supports PKCS12, Java 9+ uses PKCS12 by default, which should have
a .p12 file extension. `fdroid init` has always just added .jks which is
the old default format.
* https://docs.oracle.com/en/java/javase/12/tools/keytool.html#GUID-5990A2E4-78E3-47B7-AE75-6D1826259549__GUID-A8B9E662-C1C2-4A0E-9307-A8464F0E95D4
* https://openjdk.java.net/jeps/229
2020-09-23 16:40:37 +02:00
Hans-Christoph Steiner
08f724651e
remove "force_build_tools" config option, closes #738
...
The `force_build_tools` config option was added a long time ago to
brute force the _build-tools_ version by trying to replace the value
in `build.gradle` files. This is never something that should be used
in production, since the app's build metadata should specify this kind
of thing. And now that we're moving towards _androguard_ for
everything except fdroid build and fdroid publish, _build-tools_ will
no longer even be used in the other commands.
2020-09-16 16:30:49 +02:00
Marcus Hoffmann
a301a1ba93
add test for correct added
date for apps
2020-08-25 21:32:29 +02:00
Marcus Hoffmann
3ebc44c54f
fix tests after they switched to yaml
2020-06-25 00:07:42 +02:00
Marcus Hoffmann
a4177e5ec3
add test for correct whatsnew handling without CVC
2020-06-24 23:53:35 +02:00
Hans-Christoph Steiner
0d1fddb82e
convert inline tests to .yml
2020-06-10 10:43:27 +02:00
Hans-Christoph Steiner
f0fb3b64f8
remove obselete tests
2020-06-10 10:43:25 +02:00
Hans-Christoph Steiner
37f37ebd88
use default accepted_formats since all the files are .yml anyway
2020-06-10 10:43:21 +02:00
Hans-Christoph Steiner
b63e9e68c5
move all test metadata files to .yml format
...
for f in metadata/*.txt; do ../fdroid rewritemeta --to yml $(basename $f | sed 's,\.txt,,'); done
2020-06-10 09:56:31 +02:00
Hans-Christoph Steiner
e76a0c9d6a
git_mirror_size_limit config option to set max git mirror size
...
GitHub and GitLab have some kinds of limits on how big a git repo can be,
this makes that option configurable. This also is very useful for tests.
2020-01-14 11:36:08 +01:00
Marcus Hoffmann
83526e09a3
update: fix unarchiving of allowed disabled algorithm
...
6d0b1bbe6fae0909683f2c6a154515bc4bfcb674 didn't handle the
allow_disabled_algorithm case at all, so we add it back.
This additionally fixes a (previously existing) bug where setting
allow_disabled_algorithms to True didn't move apks back from archive to
repo. Introduce a new test for this.
The disabled_algorithm archiving logic is still all over the place so
ideally that needs a future refactor.
2020-01-01 15:25:43 +01:00
Marcus Hoffmann
7f6efa74f5
tests: add test for correctly handling CVC when archiving
2019-12-24 17:35:54 +01:00
Hans-Christoph Steiner
cf2c1d0270
run-tests needs a source of APKs to function
...
The test runs on jenkins.debian.net were failing because they
specified a dir that did not exist.
2019-09-25 12:25:39 +02:00
Hans-Christoph Steiner
051596dd0d
tests: conditionally disable tests that can't work with apksigner
...
apksigner treats MD5 signatures as valid, fdroid does not.
2019-07-10 14:35:03 +02:00
Hans-Christoph Steiner
a9aa8788e0
tests: only run source tarball test if running from git clone
2019-07-03 22:33:15 +02:00
Hans-Christoph Steiner
aa1e958360
tests: only run hooks/pre-commit if its present (not in source tarball)
2019-07-03 20:46:30 +02:00
Hans-Christoph Steiner
dd2f9d60f8
publish: fix stupid error in repro-signing and add integration test
...
stoopid mistake in ea84014f9b
reported
by @CiaranG
2019-04-11 14:06:51 +02:00
Hans-Christoph Steiner
3011953d0e
convert apkcache from pickle to JSON
...
pickle can serialize executable code, while JSON is only ever pure data.
The APK cache is only ever pure data, so no need for the security risks of
pickle. For example, if some malicious thing gets write access on the
`fdroid update` machine, it can write out a custom tmp/apkcache which would
then be executed. That is not possible with JSON.
This does just ignore any existing cache and rebuilds from scratch. That is
so we don't need to maintain pickle anywhere, and to ensure there are no
glitches from a conversion from pickle to JSON.
closes #163
2018-09-03 18:07:40 +02:00
Michael Pöhn
28ec93c587
fix: run all testcase in tests/run-tests
2018-08-06 23:53:49 +02:00
Hans-Christoph Steiner
669401640a
tests: only run gpgsign tests if gpg is present and executable
...
This allows the full test suite to run in Debian/Ubuntu autopkgtest with
only the Depends: installed, and nothing from Recommends:.
2018-06-25 10:52:12 +02:00
Hans-Christoph Steiner
5ff1b5ef37
verify: exit with error code if any APK fails to verify
2018-05-25 11:56:13 +02:00
Hans-Christoph Steiner
0a15a9b65b
tests: fix and test fdroid deploy
2018-05-25 10:32:09 +02:00
Hans-Christoph Steiner
1daa1063c5
tests: keep strerr totally clean on successful runs
...
Debian's autopkgtest defaults to considering any output on stderr as a sign
that the tests failed. it is simple to make this achieve that standard, so
it seems worth it for now at least.
2018-05-25 10:32:01 +02:00
Marcus Hoffmann
a4b6549927
tests: adapt to spdx v4.0.0
2018-05-16 22:49:57 +02:00
Hans-Christoph Steiner
f0795cc092
tests: git repo mirror tests require git >= 2.3
2018-05-14 15:25:33 +02:00
Hans-Christoph Steiner
2d3e7ef950
tests: allow tests to run without any Android SDK installed
2018-05-14 15:25:33 +02:00
Hans-Christoph Steiner
77f7ca2f25
tests: allow the full suite to run without aapt, only androguard
2018-05-04 15:11:25 +02:00
Hans-Christoph Steiner
9cc8826a79
tests: allow running with only androguard, no Android SDK
2018-05-04 15:11:25 +02:00
Hans-Christoph Steiner
74c6555c71
index: ensure index.xml timestamp is in UTC, closes #481
...
use verbose but safe syntax so this works with all versions of sed, e.g. osx
2018-04-25 16:35:22 +02:00
Hans-Christoph Steiner
7d79780df0
tests: checkupdates now requires a clean git repo state
2018-03-06 20:50:23 +01:00
Hans-Christoph Steiner
089712c012
tests: do not automatically run install.TestCase, its troublesome
...
`fdroid install` is rarely used, if at all, and the test frequently fails
for no reason in gitlab-ci, because it can't start the adb server.
2018-02-22 15:08:54 +01:00
Hans-Christoph Steiner
173a35b190
tests: only generate keystores when that is actually being tested
...
Generating a keystore is quite slow since it means a new RSA key is created.
That only needs to happen in the tests that check that it actually happened,
otherwise the test can just reuse the stored test keystore.
closes #432
2017-12-20 23:46:37 +01:00
Hans-Christoph Steiner
bde0558d82
update: reject APKs with invalid file sig, probably Janus exploits
...
This just checks the first four bytes of the APK file, aka the "file
signature", to make sure it is the ZIP signature and not the DEX signature.
This was checked against the test APK, and I ran it against some known
malware and all of f-droid.org to make sure it works.
All valid ZIP files (therefore APK files) should start with the ZIP
Local File Header of four bytes.
https://www.guardsquare.com/en/blog/new-android-vulnerability-allows-attackers-modify-apps-without-affecting-their-signatures
2017-12-14 16:57:22 +01:00
Hans-Christoph Steiner
cd3e763953
tests: only test fdroid build
if the right build-tools is installed
2017-11-09 14:07:40 +01:00
Hans-Christoph Steiner
a14124955a
tests: fix fdroid build
test with Debian gradle
2017-11-09 13:11:49 +01:00
Michael Pöhn
a2d361dec8
add test for index-v1.json
2017-09-26 14:12:59 +02:00
Hans-Christoph Steiner
2764c43fa2
tests: use ci-test-app with current Gradle Android Plugin
...
This works around the gradle 2.x bug where versions newer than 2.9 cannot
run things. This also then specifies the version of Gradle Android Plugin
that is included in Debian/stretch.
2017-09-19 20:16:08 +02:00
Hans-Christoph Steiner
dc569b9c18
tests: support Java setups where MD5 is not disabled by default
...
For platforms using Java < 1.8.0_133, MD5 is still enabled for JAR
signatures. Its just too painful to manage all this, so support this
in the tests.
2017-09-19 20:16:08 +02:00
Hans-Christoph Steiner
373b46ab3f
tests: don't run gpgsign tests on Travis CI's OSX, gpg always fails
2017-09-19 20:16:08 +02:00
Hans-Christoph Steiner
bc192b6be0
tests: prefer GNU sed on BSD/OSX, BSD's sed has lame syntax
...
https://blog.remibergsma.com/2012/09/18/sed-inline-editing-different-on-mac-osx/
2017-09-19 20:13:36 +02:00