ຕົວຢ່າງ

ໃນໜ້ານີ້ ທ່ານສາມາດຊອກຫາແຮງບັນດານໃຈຈາກຕົວຢ່າງຕົວຈິງຂອງການທົດສອບ ທີ່ໄດ້ເປີດໃຊ້ແລ້ວໃນ Fedora CI.

Python

ມີ Python ຫຼາຍເວີຊັນໃຫ້ເລືອກໃຊ້ໃນ Fedora ແລະ ມີແພັກເກັດຍ່ອຍທີ່ກ່ຽວຂ້ອງຈຳນວນໜຶ່ງ. ເນື່ອງຈາກທັງໝົດຄວນໄດ້ຮັບການທົດສອບ (ລວມທັງການປະສົມປະສານຕ່າງໆຂອງພວກມັນ) ພວກເຮົາຈຶ່ງ ແບ່ງປັນ ຂອບເຂດການທົດສອບ (test coverage) ສຳລັບພວກມັນໃນ namespace tests:

ຄັງເກັບຂໍ້ມູນການທົດສອບ (test repo) ປະກອບມີການທົດສອບພື້ນຖານ (smoke test) ສຳລັບ virtualenv ພ້ອມກັບຕົວຢ່າງການທົດສອບ Metadata ທີ່ຖືກຈັດເກັບໄວ້ໃນ Flexible Metadata Format:

ເມື່ອການທົດສອບມີໃຫ້ໃຊ້ໃນຄັງເກັບຂໍ້ມູນການທົດສອບສ່ວນກາງແລ້ວ ມັນກໍສາມາດເຊື່ອມໂຍງຈາກເວີຊັນ Python ທີ່ຮອງຮັບໄດ້ຢ່າງງ່າຍດາຍ:

ພວກເຮົາທົດສອບການເຮັດວຽກຂອງ Python ໃນຮູບແບບອື່ນໆຕື່ມອີກຄືກັນ:

Plus we ensure that essential tools for venv and virtualenv, such as setuptools, pip or virtualenv itself correctly work with all supported versions:

ໝາຍເຫດ: ສຳລັບຊຸດຕົວຢ່າງສຸດທ້າຍ ພວກເຮົາລັນການທົດສອບດຽວກັນຫຼາຍຄັ້ງດ້ວຍສະພາບແວດລ້ອມ (environment) ທີ່ຖືກປັບປ່ຽນ. ຕົວຢ່າງ:

  - name: tests_python
    how: shell
    url: https://src.fedoraproject.org/tests/python.git
    tests:
    - name: smoke36
      path: /smoke
      test:  VERSION=3.6 INSTALL_OR_SKIP=true ./venv.sh
    - name: smoke39
      path: /smoke
      test:  VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh
    - name: smoke310
      path: /smoke
      test:  VERSION=3.10 INSTALL_OR_SKIP=true ./venv.sh

ດ້ວຍວິທີນີ້ ພວກເຮົາສ້າງກໍລະນີການທົດສອບສະເໝືອນ (virtual test cases) ຫຼາຍອັນຈາກໂຄ້ດທົດສອບດຽວ ເຊິ່ງຊ່ວຍປ້ອງກັນການເຮັດຊ້ຳຊ້ອນ ແລະ ຫຼຸດຜ່ອນການບຳລຸງຮັກສາໃນອະນາຄົດ.

SELinux

ມີຄອມໂພເນນຫຼາຍອັນທີ່ກ່ຽວຂ້ອງກັບ SELinux. ພວກມັນມີຄວາມເຊື່ອມໂຍງກັນຢ່າງໃກ້ຊິດ ດັ່ງນັ້ນການປ່ຽນແປງໃນອັນໜຶ່ງອາດສົ່ງຜົນກະທົບຕໍ່ອັນອື່ນ. ນັ້ນແມ່ນເຫດຜົນທີ່ການທົດສອບຂອງພວກມັນຖືກໃຊ້ຮ່ວມກັນ ແລະ ປະຕິບັດການພ້ອມກັນ:

Instead of listing relevant tests to be executed manually in each dist-git package repository Flexible Metadata Format is used, e.g. in libsepol:

summary: selinux tests - Tier 1 | libsepol
discover:
    how: fmf
    url: https://src.fedoraproject.org/tests/selinux
    filter: "tier: 1 | component: libsepol"
execute:
    how: tmt

The filter selects all tests relevant for the libsepol component plus all Tier 1 selinux tests.

ມີ 6 ຄອມໂພເນນຕໍ່ໄປນີ້ທີ່ຄອບຄຸມຢູ່:

ໃຊ້ເຄື່ອງມື command line fmf ເພື່ອກວດສອບຢ່າງວ່ອງໄວວ່າການທົດສອບໃດຈະຖືກກຳນົດເວລາ (scheduled):

# dnf install -y fmf
# fedpkg clone -a tests/selinux
# cd selinux
# fmf ls --filter "tier: 1 | component: libsepol"
/checkpolicy/checkmodule
/checkpolicy/checkpolicy
/checkpolicy/checkpolicy-docs
/kernel/selinux-testsuite
/libselinux/matchpathcon-in-chroot-env
/libselinux/realpath_not_final-function
/libselinux/selabel-functions
/libselinux/selabel_lookup-and-local-changes
/libselinux/selinux_boolean_sub-function
/libselinux/selinux_restorecon-functions
/libselinux/selinux_sestatus-functions
/libselinux/selinux_set_callback
/libselinux/setenforce
/libselinux/validatetrans
...

ເບິ່ງເອກະສານຂອງ Flexible Metadata Format ສຳລັບທາງເລືອກອື່ນໆໃນການ ຕິດຕັ້ງ fmf.