Project

General

Profile

Feature #15286

Feature #15281: Stack one single SquashFS diff when upgrading

Adapt automated test suite for the "one single SquashFS diff" upgrade scheme

Added by anonym almost 2 years ago. Updated 20 days ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
Test suite
Target version:
Start date:
02/05/2018
Due date:
% Done:

100%

Feature Branch:
feature/15281-single-squashfs-diff
Type of work:
Code
Blueprint:
Starter:
Affected tool:

Description

We need scenarios for installing an IUK when:
  • no IUK is present
  • one IUK is present (make sure old one was removed)
  • more than one IUK is present (make sure old ones were removed)

Related issues

Blocks Tails - Feature #15283: Implement the "one single SquashFS diff" scheme in Tails Upgrader Resolved
Blocks Tails - Feature #16209: Core work: Foundations Team Confirmed

Associated revisions

Revision d7a84c53 (diff)
Added by anonym almost 2 years ago

Test suite: adapt/add Gherkin scenarios for 1BigIUK.

No work on the steps have been done so far.

Refs: #15286

Revision 6f739c73 (diff)
Added by anonym almost 2 years ago

Add UDFs for 2.0~test, used by the automated test suite.

Refs: #15286

Revision c578c42f (diff)
Added by anonym almost 2 years ago

Test suite: implement missing steps for IUK scenarios.

Will-fix: #15286

Revision 332947e8 (diff)
Added by intrigeri about 1 month ago

Add UDFs under the v2 URL format (refs: #15286)

Revision 302f73f3 (diff)
Added by intrigeri about 1 month ago

Add UDFs for 4.x under the v2 URL format (refs: #15286)

The new Upgrader, that'll be shipped in 4.2, will start looking
for upgrades via the v2 API. Until something strictly newer
than 4.2 is built and tested, there won't be upgrades available
regardless of the initially installed version.

Revision cc61dd4d (diff)
Added by intrigeri about 1 month ago

Test suite: salvage note about missing test (refs: #15286)

This brings back 2763439ddf07cf0fb4eec091a40135e7dda1a67f:
https://redmine.tails.boum.org/code/issues/15286#note-8

Revision a71c66e7 (diff)
Added by intrigeri about 1 month ago

Test suite: prettify (refs: #15286)

… as suggested by anonym when he implemented this initially :)

Revision f41a98a4 (diff)
Added by intrigeri about 1 month ago

Test suite: move step where it belongs (refs: #15286)

This is about verifying that the upgrade was correctly applied,
not about the Unsafe Browser.

Revision 8991499c (diff)
Added by intrigeri about 1 month ago

WIP: Test suite: verify that previous SquashFS deltas are actually deleted (refs: #15286)

Revision fdb250d8 (diff)
Added by intrigeri about 1 month ago

Add a crude script to generate IUKs for our test suite (refs: #15286)

Doing this by hand one more time now, and once again soon for IUK v2 +
overlayfs, was not particularly appealing.

Revision c3da18bc (diff)
Added by intrigeri about 1 month ago

Test suite: salvage note about missing test (refs: #15286)

This brings back 2763439ddf07cf0fb4eec091a40135e7dda1a67f:
https://redmine.tails.boum.org/code/issues/15286#note-8

Revision 1e4c4665 (diff)
Added by intrigeri about 1 month ago

Test suite: prettify (refs: #15286)

… as suggested by anonym when he implemented this initially :)

Revision 60014d28 (diff)
Added by intrigeri about 1 month ago

Test suite: move step where it belongs (refs: #15286)

This is about verifying that the upgrade was correctly applied,
not about the Unsafe Browser.

Revision 0ec351e6 (diff)
Added by intrigeri about 1 month ago

WIP: Test suite: verify that previous SquashFS deltas are actually deleted (refs: #15286)

Revision cd08f78b (diff)
Added by intrigeri about 1 month ago

Add a crude script to generate IUKs for our test suite (refs: #15286)

Doing this by hand one more time now, and once again soon for IUK v2 +
overlayfs, was not particularly appealing.

Revision 82c53b60 (diff)
Added by intrigeri about 1 month ago

Update test UDFs to match fixed test IUKs (refs: #15286)

Revision fd039f44 (diff)
Added by intrigeri about 1 month ago

Test suite: fix syntax (refs: #15286)

Revision 514ace78 (diff)
Added by intrigeri about 1 month ago

Test suite: add reference image (refs: #15286)

Revision 53d88ee9 (diff)
Added by intrigeri about 1 month ago

Test suite: fix Gherkin (refs: #15286)

Given the test UDFs we're using, an initially installed 2.0~test
will be upgraded to 2.2~test.

Revision 20ccb455 (diff)
Added by intrigeri about 1 month ago

Test suite: remove dead code (refs: #15286)

Revision 92b23212 (diff)
Added by intrigeri about 1 month ago

Test suite: ensure our test IUKs don't break the next boot (refs: #15286)

Revision 31db8013 (diff)
Added by intrigeri about 1 month ago

Fix script that generates test IUKs (refs: #15286)

Revision 8f32f322 (diff)
Added by intrigeri about 1 month ago

Test suite: update reference image (refs: #15286)

Revision 05ce1235 (diff)
Added by intrigeri about 1 month ago

Test suite: fix testing the Unsafe Browser after automatic upgrade (refs: #15286)

The Unsafe Browser needs a DNS resolver configured so we need to plug
the network first.

Revision 89249f8b (diff)
Added by intrigeri about 1 month ago

Test suite: avoid robustness step introducing fragility (refs: #15286)

I've seen cases when the ESC key stroke in "all notifications have disappeared"
closes the very dialog that we'll be looking for in the next step
("I am proposed to install an incremental upgrade to…"). I suspect
this never happened before because the Upgrader took longer to start,
so optimizing it introduced this race condition.

In these scenarios, I doubt that closing notifications is important: the
aforementioned zenity dialog is always displayed in the center of the screen and
there's little change a notification hides it.

Revision e5e98537
Added by segfault 20 days ago

Merge branch 'feature/15281-single-squashfs-diff' into stable (Closes: #15281, #15279, #15283, #15286)

History

#1 Updated by anonym almost 2 years ago

  • % Done changed from 0 to 20
  • Feature Branch set to feature/15281-1bigiuk

I've adapted the Gherkin scenarios (only) in the feature branch.

#2 Updated by anonym almost 2 years ago

  • Status changed from Confirmed to In Progress

#3 Updated by intrigeri almost 2 years ago

  • Subject changed from Adapt automated test suite for 1BigIUK to Adapt automated test suite for the "one single SquashFS diff" upgrade scheme

#4 Updated by intrigeri almost 2 years ago

  • Blocks Feature #15283: Implement the "one single SquashFS diff" scheme in Tails Upgrader added

#5 Updated by anonym almost 2 years ago

  • Assignee changed from anonym to intrigeri
  • % Done changed from 20 to 50
  • QA Check set to Ready for QA
  • Feature Branch changed from feature/15281-1bigiuk to feature/15281-single-squashfs-diff

I believe I've implemented the required scenarios and changes to current scenarios/steps, but I couldn't test these tests because the thing to be tested (#15283) is no done yet => have fun with TDD! :)

#6 Updated by intrigeri almost 2 years ago

  • Assignee changed from intrigeri to anonym
  • QA Check changed from Ready for QA to Dev Needed

#7 Updated by intrigeri almost 2 years ago

  • Blocks Feature #15282: Add a prompt right before applying an IUK added

#8 Updated by intrigeri almost 2 years ago

My understanding is that the tests you wrote about deleting old SquashFS diffs currently mostly replicate the tests we already have in iuk.git, but they don't exercise the part that I'm actually concerned about, i.e. the behaviour that can only be exercised via full-blown integration testing: deleting old SquashFS diffs that are in use by the running system. I'm assuming that when we do "Tails is fooled to think a 2.1~test squashfs delta is installed", no such SquashFS delta is really union-mounted.

And when you'll implement that, as I had requested in 2763439ddf07cf0fb4eec091a40135e7dda1a67f on the (now gone) feature/11131-endless-upgrade branch, I'd like us to test that any old SquashFS diff is gone after shutting down the system: while we're using them we can merely unlink them but we cannot be sure they have really been deleted. Depending on fine details about our shutdown procedure (and in particular the crazy things we do for the memory erasure feature), such deletion might be effectively applied to the filesystem before it's unmounted cleanly, or things can go wrong, I dunno and I really would like to know and have a safeguard in case we ever break it (e.g. when migrating to overlayfs, which will force me to rewrite great parts of our shutdown procedure).

Minor nitpicking: please s/squashfs/SquashFS/ in various places :)

#9 Updated by intrigeri almost 2 years ago

The test suite needs to be updated wrt. #15282: FindFailed: TailsUpgraderOkButton.png when the upgrader tells the IUK download is complete.

#10 Updated by intrigeri almost 2 years ago

  • Target version changed from Tails_3.6 to Tails_3.7

#11 Updated by intrigeri almost 2 years ago

  • Target version changed from Tails_3.7 to Tails_3.8

#12 Updated by intrigeri over 1 year ago

  • Target version changed from Tails_3.8 to Tails_3.10.1

#13 Updated by intrigeri over 1 year ago

  • Target version changed from Tails_3.10.1 to Tails_3.11

#14 Updated by intrigeri over 1 year ago

#15 Updated by intrigeri over 1 year ago

  • Assignee changed from anonym to CyrilBrulebois

As per summit meeting notes.

#16 Updated by intrigeri about 1 year ago

  • Target version changed from Tails_3.11 to Tails_3.13

#17 Updated by intrigeri about 1 year ago

  • Blocks deleted (Feature #15282: Add a prompt right before applying an IUK)

#18 Updated by intrigeri about 1 year ago

  • Target version changed from Tails_3.13 to 2019

#19 Updated by intrigeri 10 months ago

#20 Updated by intrigeri 10 months ago

#21 Updated by intrigeri 10 months ago

  • Assignee deleted (CyrilBrulebois)

#22 Updated by intrigeri about 2 months ago

  • Target version changed from 2019 to Tails_4.2

#23 Updated by intrigeri about 2 months ago

  • Assignee set to intrigeri

#24 Updated by intrigeri about 2 months ago

  • Priority changed from Normal to High

#25 Updated by intrigeri about 1 month ago

  • Status changed from In Progress to Needs Validation

#26 Updated by intrigeri about 1 month ago

  • Assignee changed from intrigeri to segfault

#27 Updated by segfault 20 days ago

  • Status changed from Needs Validation to Resolved
  • % Done changed from 50 to 100

Also available in: Atom PDF