Skip to content

test/system: Optimize the help, group and user tests#1635

Merged
debarshiray merged 2 commits intocontainers:mainfrom
debarshiray:wip/rishi/test-system-206-user-optimize-container-creation
May 1, 2025
Merged

test/system: Optimize the help, group and user tests#1635
debarshiray merged 2 commits intocontainers:mainfrom
debarshiray:wip/rishi/test-system-206-user-optimize-container-creation

Conversation

@debarshiray
Copy link
Copy Markdown
Member

@debarshiray debarshiray commented May 1, 2025

The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate. This makes them slow.

A lot of disk I/O can be avoided by reducing the number of times this
happens.

@debarshiray debarshiray requested a review from martymichal as a code owner May 1, 2025 14:36
debarshiray added a commit to debarshiray/toolbox that referenced this pull request May 1, 2025
The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The runtime environment tests, which includes the resource limit tests,
are particularly slow because they don't skip the I/O even when testing
error handling.  This makes them a good target for optimizations.

The resource limit tests query the values for different resources from
the same default container without changing its state.  Therefore, a lot
of disk I/O can be avoided by creating the default container only once
for all the tests.

containers#1635
@debarshiray debarshiray force-pushed the wip/rishi/test-system-206-user-optimize-container-creation branch from 0f87887 to 61ada39 Compare May 1, 2025 14:37
@debarshiray debarshiray changed the title test/system: Optimize the group and user tests test/system: Optimize the help, group and user tests May 1, 2025
@softwarefactory-project-zuul
Copy link
Copy Markdown

The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The tests for toolbox(1) invocations forwarded to the host, which
includes the help tests, are particularly slow because they never skip
the I/O.  This makes them a good target for optimizations.

The help tests for toolbox(1) invocations forwarded to the host use the
same default Toolbx container to invoke toolbox(1) from without changing
its state.  Therefore, a lot of disk I/O can be avoided by creating the
default container only once for all those tests.

This can reduce the time needed to run the help tests from almost 7
minutes to a few seconds.

containers#1635
@debarshiray debarshiray force-pushed the wip/rishi/test-system-206-user-optimize-container-creation branch from 61ada39 to 69d6b11 Compare May 1, 2025 16:05
debarshiray added a commit to debarshiray/toolbox that referenced this pull request May 1, 2025
The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The runtime environment tests, which includes the group and user tests,
are particularly slow because they don't skip the I/O even when testing
error handling.  This makes them a good target for optimizations.

The group and user tests check the group and user configuration in
different containers without changing their state.  Therefore, a lot of
disk I/O can be avoided by creating these containers only once for all
the tests.

containers#1635
@softwarefactory-project-zuul
Copy link
Copy Markdown

The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The runtime environment tests, which includes the group and user tests,
are particularly slow because they don't skip the I/O even when testing
error handling.  This makes them a good target for optimizations.

The group and user tests check the group and user configuration in
different containers without changing their state.  Therefore, a lot of
disk I/O can be avoided by creating these containers only once for all
the tests.

This can reduce the time needed to run the group and user tests from
almost 22 minutes to almost 5 minutes.

containers#1635
@softwarefactory-project-zuul
Copy link
Copy Markdown

@debarshiray
Copy link
Copy Markdown
Member Author

recheck

@softwarefactory-project-zuul
Copy link
Copy Markdown

@debarshiray debarshiray merged commit 3017a46 into containers:main May 1, 2025
3 checks passed
@debarshiray debarshiray deleted the wip/rishi/test-system-206-user-optimize-container-creation branch May 1, 2025 22:36
debarshiray added a commit to debarshiray/toolbox that referenced this pull request Jan 27, 2026
The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The runtime environment tests, which includes the group and user tests,
are particularly slow because they don't skip the I/O even when testing
error handling.  This makes them a good target for optimizations.

The group and user tests check the group and user configuration in
different containers without changing their state.  Therefore, a lot of
disk I/O can be avoided by creating these containers only once for all
the tests.

This can reduce the time needed to run the group and user tests from
almost 22 minutes to almost 5 minutes.

containers#1635
containers#1742
(backported from commit 3017a46)
debarshiray added a commit to debarshiray/toolbox that referenced this pull request Jan 27, 2026
The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The runtime environment tests, which includes the group and user tests,
are particularly slow because they don't skip the I/O even when testing
error handling.  This makes them a good target for optimizations.

The group and user tests check the group and user configuration in
different containers without changing their state.  Therefore, a lot of
disk I/O can be avoided by creating these containers only once for all
the tests.

This can reduce the time needed to run the group and user tests from
almost 22 minutes to almost 5 minutes.

containers#1635
containers#1742
(backported from commit 3017a46)
debarshiray added a commit to debarshiray/toolbox that referenced this pull request Jan 27, 2026
The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The runtime environment tests, which includes the group and user tests,
are particularly slow because they don't skip the I/O even when testing
error handling.  This makes them a good target for optimizations.

The group and user tests check the group and user configuration in
different containers without changing their state.  Therefore, a lot of
disk I/O can be avoided by creating these containers only once for all
the tests.

This can reduce the time needed to run the group and user tests from
almost 22 minutes to almost 5 minutes.

containers#1635
containers#1746
(backported from commit 3017a46)
debarshiray added a commit to debarshiray/toolbox that referenced this pull request Feb 4, 2026
Both the commands and options tests [1,2], and runtime environment
tests [3,4,5,6] were optimized by avoiding a lot of disk I/O.

Fallout from 40e3c5a

[1] Commit adc8650
    containers@adc8650660b454f3
    containers#1595

[2] Commit 69d6b11
    containers@69d6b11a9b91ccbf
    containers#1635

[3] Commit 3017a46
    containers@3017a46c03c963ef
    containers#1635

[4] Commit 1b9dd00
    containers@1b9dd007ea1d0778
    containers#1637

[5] Commit 5881bc4
    containers@5881bc43f34815b1
    containers#1641

[6] Commit 836c055
    containers@836c0557f4dc100b
    containers#1646
debarshiray added a commit to debarshiray/toolbox that referenced this pull request Feb 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant