--rw #41
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | name: VM Test | |
| on: | |
| push: | |
| branches: [ "**" ] | |
| workflow_dispatch: | |
| jobs: | |
| vm-test: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: rockylinux:9 | |
| options: --cpus 4 --privileged | |
| steps: | |
| - name: Install tools and Libraries | |
| run: | | |
| dnf install epel-release -y | |
| # Packages for booting a vm | |
| dnf install qemu-kvm virtme-ng cowsay -y | |
| # Packages for building the kernel | |
| dnf groupinstall 'Development Tools' -y | |
| dnf install --enablerepo=crb bc dwarves kernel-devel openssl-devel elfutils-libelf-devel -y | |
| # Packages for testing the kernel | |
| dnf config-manager --set-enabled devel | |
| dnf install alsa-lib-devel bison clang conntrack-tools elfutils-libelf-devel ethtool flex fuse-devel gcc git glibc-static iperf3 iproute iproute-tc iputils iptables-nft jq libasan-static libcap-devel libcap-ng-devel libmnl-devel libubsan make net-tools netcat nftables numactl-devel openssl-devel popt-static python3-jsonschema python3-pyyaml rsync socat sudo -y | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: "${{ github.event.pull_request.head.sha }}" | |
| fetch-depth: 0 | |
| - name: Run vng | |
| run: | | |
| #sed -i 's/set_page_dirty = v9fs_set_page_dirty/dirty_folio = v9fs_dirty_folio/g' fs/9p/vfs_addr.c | |
| #sed -i 's/v9fs_set_page_dirty __set_page_dirty_nobuffers/v9fs_dirty_folio filemap_dirty_folio/g' fs/9p/vfs_addr.c | |
| #vng -b --config configs/kernel-x86_64-rhel.config | |
| #vng --cpus $(nproc) --qemu /usr/libexec/qemu-kvm --disable-microvm --force-initramfs -- uname -r && make kselftest TARGETS="net x86 zram" | tee selftests-after.log | |
| cp configs/kernel-x86_64-rhel.config .config | |
| make olddefconfig | |
| make headers | |
| dnf install kernel -y | |
| vng -r /lib/modules/*/vmlinuz --cpus $(nproc) --qemu /usr/libexec/qemu-kvm --disable-microvm --force-initramfs --rw -- sh -c 'uname -r && make kselftest SKIP_TARGETS="breakpoints lkdtm proc"' | tee selftests-before.log | |
| grep ^ok selftests-before.log | wc -l | |
| #grep ^ok selftests-after.log | wc -l | |