github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/tools/gvisor-smoke-test.sh (about)

     1  #!/usr/bin/env bash
     2  # Copyright 2024 syzkaller project authors. All rights reserved.
     3  # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     4  
     5  set -xeuo pipefail
     6  
     7  workdir="$(mktemp -d /tmp/syzkaller-gvisor-test.XXXXXX)"
     8  
     9  cleanup() {
    10    sudo -E rm -rf "$workdir"
    11  }
    12  
    13  trap cleanup EXIT
    14  
    15  syzdir="$(pwd)"
    16  cat > "$workdir/config" <<EOF
    17  {
    18          "name": "gvisor",
    19          "target": "linux/amd64",
    20          "http": ":54321",
    21          "workdir": "/$workdir/workdir/",
    22          "image": "$workdir/kernel/vmlinux",
    23          "kernel_obj": "$workdir/kernel/",
    24          "syzkaller": "$syzdir",
    25          "cover": false,
    26          "procs": 1,
    27          "type": "gvisor",
    28          "vm": {
    29                  "count": 1,
    30                  "runsc_args": "--ignore-cgroups --network none"
    31          }
    32  }
    33  EOF
    34  
    35  mkdir "$workdir/kernel"
    36  if [[ -z "${GVISOR_VMLINUX_PATH:-}" ]]; then
    37    arch="$(uname -m)"
    38    url="https://storage.googleapis.com/gvisor/releases/release/latest/${arch}"
    39    curl --output "$workdir/kernel/vmlinux" "${url}/runsc"
    40    chmod a+rx "$workdir/kernel/vmlinux"
    41  else
    42    install -m555 "$GVISOR_VMLINUX_PATH" "$workdir/kernel/vmlinux"
    43  fi
    44  
    45  sudo -E ./bin/syz-manager -config "$workdir/config" --mode smoke-test