Skip to content

Commit b85d86a

Browse files
committed
[task] document update smoke workflow
1 parent efa7aff commit b85d86a

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Catroid Update Smoke Test
2+
3+
This smoke test exercises the update path users take from the currently deployed
4+
Play Store branch to the APK under test.
5+
6+
The workflow builds a release-style baseline APK from `main`, and a
7+
release-style `updateTest` APK for the PR with the same package
8+
name and a higher version code. Both APKs are built locally and signed with the
9+
same debug key so Android accepts the in-place update. The `updateTest` build
10+
type is not suitable for updating over an APK actually downloaded from Google
11+
Play, because Play-signed and debug-signed APKs cannot update each other.
12+
13+
## Local Run
14+
15+
Build or provide two APKs with the same package name, where the second APK has a
16+
higher version code:
17+
18+
```sh
19+
ADB=/path/to/adb \
20+
automationScripts/update-smoke/run-update-smoke.sh \
21+
/path/to/baseline.apk \
22+
/path/to/pr.apk \
23+
org.catrobat.catroid
24+
```
25+
26+
The emulator must allow `adb root`, because the test seeds private app storage
27+
under `/data/data/org.catrobat.catroid` before launching the updated APK.
28+
29+
## Seeded Fixtures
30+
31+
The script seeds:
32+
33+
- `Pong Starter` as a known-good project.
34+
- `UpdateSmokeBrokenProject` with malformed `code.xml` and a corrupt thumbnail.
35+
- `fixtures/legacy-room-v2-app-database.sql`, a Room schema version 2 database
36+
fixture whose `project_response` table intentionally lacks the version 3
37+
`private` column.
38+
39+
## Environment Variables
40+
41+
- `ADB`: path to `adb`; defaults to `adb`.
42+
- `UPDATE_SMOKE_ARTIFACT_DIR`: directory for logcat/UI artifacts.
43+
- `UPDATE_SMOKE_GOOD_PROJECT_ARCHIVE`: override the good `.catrobat` fixture.
44+
- `UPDATE_SMOKE_GOOD_PROJECT_NAME`: expected display name for the good project.
45+
- `UPDATE_SMOKE_BROKEN_PROJECT_NAME`: expected display name for the broken project.
46+
- `UPDATE_SMOKE_LEGACY_DB_SQL`: override the legacy Room SQL fixture.
47+
- `UPDATE_SMOKE_SEED_LEGACY_DB`: set to `false` to skip DB seeding.
48+
- `UPDATE_SMOKE_STRICT_UI`: defaults to `true`; set to `false` for local
49+
debugging when UI matching should not fail the run.

0 commit comments

Comments
 (0)