Skip to content

[#697] Github actions to run all PRC tests - #772

Merged
alanking merged 6 commits into
irods:mainfrom
d-w-moore:ghrunner-run-all-tests
Nov 24, 2025
Merged

[#697] Github actions to run all PRC tests#772
alanking merged 6 commits into
irods:mainfrom
d-w-moore:ghrunner-run-all-tests

Conversation

@d-w-moore

Copy link
Copy Markdown
Collaborator

All tests will run from GitHub actions.

Except the interactive PAM test, and that omission will soon be rectified.

@d-w-moore
d-w-moore marked this pull request as draft September 29, 2025 14:17
@d-w-moore
d-w-mooreforce-pushed the ghrunner-run-all-tests branch 2 times, most recently from 9bd1449 to 19ef753CompareOctober 3, 2025 20:33
Comment thread.github/workflows/run-bats-tests.yml Outdated
Comment threadirods/test/harness/build-docker.sh Outdated
Comment threadtest_harness/single_node/docker_container_driver.sh
Comment threadtest_harness/single_node/install.sh
@d-w-moore
d-w-mooreforce-pushed the ghrunner-run-all-tests branch 4 times, most recently from fa0b1ae to 5cfcce8CompareOctober 5, 2025 04:34
@d-w-moore

Copy link
Copy Markdown
CollaboratorAuthor

All the checks implemented via github actions (except Codacy) are passing . Some cleanup has been done on the code as well. I think we're for a preliminary round of review. Just be aware there are some extra scripts that are not central to the github actions we've implemented here. They are there as examples and tests of the harness functionality.

@d-w-moore
d-w-moore marked this pull request as ready for review October 9, 2025 17:01
@d-w-moored-w-moore self-assigned this Oct 9, 2025
@trel

trel commented Oct 9, 2025

Copy link
Copy Markdown
Member

please mark the ones that are 'not central'.

are you suggesting we keep the scripts that are 'not central'? if so, why?

@d-w-moore

Copy link
Copy Markdown
CollaboratorAuthor

please mark the ones that are 'not central'.

are you suggesting we keep the scripts that are 'not central'? if so, why?

They're illustrative but not necessary, so I'll remove them.

@trel

trel commented Oct 9, 2025

Copy link
Copy Markdown
Member

They're illustrative but not necessary, so I'll remove them.

Ah, okay - yes please remove them. And consider putting any helpful words / examples in README.md files at the appropriate locations.

@d-w-moore
d-w-mooreforce-pushed the ghrunner-run-all-tests branch from 08a524c to 26cc9a1CompareOctober 10, 2025 16:05
@d-w-moore

d-w-moore commented Oct 10, 2025

Copy link
Copy Markdown
CollaboratorAuthor

We are now down to 6 basic commits.

@d-w-moore
d-w-mooreforce-pushed the ghrunner-run-all-tests branch 2 times, most recently from f14118d to e2f2615CompareOctober 13, 2025 15:28
@d-w-moore

d-w-moore commented Oct 13, 2025

Copy link
Copy Markdown
CollaboratorAuthor

We're now down to 8 basic commits. If that's too many for the convenience of those reviewing, let me know and I can maybe digest it down further.

@korydraughn

Copy link
Copy Markdown
Contributor

8 commits isn't bad at all, but let's go ahead and squash commits into their final shape if we know what that is.

@d-w-moore
d-w-mooreforce-pushed the ghrunner-run-all-tests branch from e2f2615 to a395ff6CompareOctober 13, 2025 17:10
@d-w-moore

Copy link
Copy Markdown
CollaboratorAuthor

Commits now minimized to 2.

Comment thread.github/workflows/README.md Outdated
Comment thread.github/workflows/README.md Outdated
Comment thread.github/workflows/README.md Outdated
Comment thread.github/workflows/README.md Outdated
Comment thread.github/workflows/README.md Outdated
Comment threaddocker-testing/recv_oneshot Outdated
Comment threaddocker-testing/run_tests.sh Outdated
Comment threaddocker-testing/run_tests.sh Outdated
Comment threaddocker-testing/run_tests.sh Outdated
Comment threaddocker-testing/send_oneshot Outdated
Comment thread.github/workflows/README.md Outdated
Comment thread.github/workflows/run-the-tests.yml Outdated
Comment thread.github/workflows/README.md Outdated
Comment thread.github/workflows/README.md Outdated
Comment threaddocker-testing/README.md Outdated
Comment threadirods/test/harness/install.sh Outdated
Comment threadirods/test/harness/install.sh Outdated
Comment threadtest_harness/single_node/install_python_rule_engine Outdated
Comment threadirods/test/scripts/test_support_functions Outdated
Comment threadirods/test/scripts/test_support_functions Outdated
Comment threadirods/test/harness/000_install-irods.Dockerfile Outdated
Comment threadirods/test/harness/001_bats-python3.Dockerfile Outdated
Comment threadirods/test/harness/003_compile-specific-python.Dockerfile Outdated
Comment threadirods/test/harness/003_compile-specific-python.Dockerfile Outdated
Comment threadirods/test/harness/003_compile-specific-python.Dockerfile Outdated
Comment threadirods/test/harness/003_compile-specific-python.Dockerfile Outdated
Comment threadtest_harness/single_node/README.md
Comment threadirods/test/harness/README.txt Outdated
Comment threadirods/test/scripts/test001_pam_password_expiration.bats Outdated
Comment threadirods/test/scripts/test010_issue_362_rogue_chars_in_pam_password.bats Outdated
Comment threadtest_harness/multiple_node/README.md Outdated
Comment threaddocker-testing/irods_catalog_provider/entrypoint.sh Outdated
Comment threaddocker-testing/run_tests.sh Outdated
Comment threadirods/test/harness/001_bats-python3.Dockerfile Outdated
Comment thread.github/workflows/README.md Outdated
Comment threadirods/test/scripts/test010_issue_362_rogue_chars_in_pam_password.bats Outdated
Comment threadirods/test/scripts/test_support_functions
Comment threadirods/test/scripts/iinit.py Outdated
Comment threadirods/test/login_auth_test.sh
@trel

trel commented Nov 14, 2025

Copy link
Copy Markdown
Member

please squash so this is a candidate for merging. i still see two extra commits i think.

and consider renaming irods/test/setupssl.py to irods/test/setup_ssl.py

@d-w-moore

d-w-moore commented Nov 14, 2025

Copy link
Copy Markdown
CollaboratorAuthor

Should f59678c and ff808aa be squashed together?

My own editorial on it, keep them separate for proper attribution. And, because there is fundamentally different work being done:

  • the first commit is basically the development of the github infrastructure and the multiple-node harness.
  • the second commit is the single-node harness and related changes to the setup scripts for the tests themselves.

@alanking

alanking commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

My top suggestion at this point is to revert / delete that last commit. Why rename setupssl.py? I think we should leave that alone since it's publicly available and documented as setupssl.py. If you want to rename it, let's make a new issue and discuss how to do that at another time... unless you need to rename it in order for these changes to work.

I think the "remove Jenkins test framework support" commit can be linked to #778, yes?

Finally, looking at "[_TENTATIVE_SQUASH] mostly review based changes ..."...

This one should be split up and squashed into the commit(s) with which each change is best suited. For example, it includes a change to get rid of all symlinks. I see one symlink that was introduced in "test harness and container-based tests", so that should be squashed into there.

If no reasonable (I will let you decide what that means) split / squash can be had for these changes, maybe just keep it in its own commit and link it to all of the relevant issues. It's not ideal, but if it can't be done in a clean manner, maybe that's all we can do.

I think the rest of the commits look fine.

@trel

trel commented Nov 14, 2025

Copy link
Copy Markdown
Member

the rename ssl thing was me - i noticed all the other files had underscores in their naming... and it stood out.

@d-w-moore

Copy link
Copy Markdown
CollaboratorAuthor

Finally, looking at "[_TENTATIVE_SQUASH] mostly review based changes ..."...

This one should be split up and squashed into the commit(s) with which each change is best suited. For example, it includes a change to get rid of all symlinks. I see one symlink that was introduced in "test harness and container-based tests", so that should be squashed into there.

If no reasonable (I will let you decide what that means) split / squash can be had for these changes, maybe just keep it in its own commit and link it to all of the relevant issues.

I can split it up pretty easily, as it still exists on another branch in unsplit form.

@d-w-moore

Copy link
Copy Markdown
CollaboratorAuthor

the rename ssl thing was me - i noticed all the other files had underscores in their naming... and it stood out.

I'll work on the merge-compatible squashing tonight and defer to consensus on the renaming or not of setupssl.py

@korydraughnkorydraughn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost there!

Comment threadirods/test/scripts/test_support_functions Outdated
Comment threadirods/test/scripts/test_support_functions Outdated
Comment threadirods/test/scripts/test_support_functions
Comment threadirods/test/login_auth_test.sh Outdated
Comment threadirods/test/login_auth_test.sh Outdated
Comment threadtest_harness/single_node/setup_python_rule_engine
Comment threadtest_harness/single_node/setup_python_rule_engine Outdated
Comment threadtest_harness/single_node/setup_python_rule_engine Outdated
Comment threadtest_harness/single_node/README.md Outdated
Comment threadtest_harness/single_node/README.md Outdated
@d-w-moore
d-w-mooreforce-pushed the ghrunner-run-all-tests branch 4 times, most recently from 684c2c5 to 2108494CompareNovember 17, 2025 12:39
@alanking

Copy link
Copy Markdown
Contributor

Given the new changes and the way things are arranged now, I would make a best-effort attempt at squashing the commits without issue numbers into the commits with issue numbers. If it proves too messy/difficult to sort through, I (personally) am not opposed to "formatting" commits (which exclusively or primarily deal with whitespace) that come at the end of a line of commits. Leaving that up to you, @d-w-moore.

the rename ssl thing was me - i noticed all the other files had underscores in their naming... and it stood out.

Looking into this further, I think it's okay to rename that script. It appears to be used internally for testing only. Please squash that into the commits with issue numbers as well.

@d-w-moore

d-w-moore commented Nov 17, 2025

Copy link
Copy Markdown
CollaboratorAuthor

... I would make a best-effort attempt at squashing the commits without issue numbers into the commits with issue numbers. If it proves too messy/difficult to sort through, I (personally) am not opposed to "formatting" commits (which exclusively or primarily deal with whitespace) that come at the end of a line of commits. Leaving that up to you, @d-w-moore.

the rename ssl thing was me - i noticed all the other files had underscores in their naming... and it stood out.

Looking into this further, I think it's okay to rename that script. It appears to be used internally for testing only. Please squash that into the commits with issue numbers as well.

No problems, will do the squashing next.

@d-w-moore
d-w-mooreforce-pushed the ghrunner-run-all-tests branch 3 times, most recently from af5d51b to b027915CompareNovember 18, 2025 02:34

@korydraughnkorydraughn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pound it!

treland others added 6 commits November 21, 2025 21:49
Co-authored-by: d-w-moore <dmoore@renci.org>
Includes a docker compose configuration in which the PRC test suite
can be run in a way representative of typical operational use, and the
version of iRODS server and python interpreter that we install are also easily
reconfigurable.
Additionally, this affords us the opportunity to run the test suite on a client
node all its own, the iRODS server being reachable only via the network.
A new test harness is introduced in which we construct a new
container (using either Docker or podman) for each test program
we run. This allows full customization of the container
environment for the particular needs of each test.
Accordingly, also included with the Github workflows is a
full run of the PRC test suite with the iRODS server and
catalog DB server running in the same container as the client.
In the process of putting old tests through new rigors, faults
were found and corrected in some of those tests.
The test now fetches the modify and access timestamps during the interval
in which the replica is open, then asserts those timestamps as equal to
each other, as well as that they are greater than a system-generated
datetime of about two seconds prior. (This is due to some timestamps
including a microseconds count whereas others do not.)
@alanking

Copy link
Copy Markdown
Contributor

The documentation introduced in this PR for running the tests also addresses #637. We will not be linking any specific commit to the issue, so I am doing it here in this comment.

Merging.

@alanking
alanking merged commit 94b8594 into irods:mainNov 24, 2025
13 of 14 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@d-w-moore@trel@korydraughn@alanking