QEMU Logo
7.0.0

Contents:

  • About QEMU
  • System Emulation
  • User Mode Emulation
  • Tools
  • System Emulation Management and Interoperability
  • System Emulation Guest Hardware Specifications
  • Developer Information
    • QEMU Community Processes
    • QEMU Build and Test System
      • The QEMU build system architecture
      • QEMU and Kconfig
      • Testing in QEMU
      • QTest Device Emulation Testing Framework
      • CI
      • How to use the QAPI code generator
      • Fuzzing
      • Control-Flow Integrity (CFI)
    • Internal QEMU APIs
    • Internal Subsystem Information
    • TCG Emulation
QEMU
  • »
  • Developer Information »
  • QEMU Build and Test System
  • Edit on GitLab

QEMU Build and Test System¶

Details about how QEMU’s build system works and how it is integrated into our testing infrastructure. You will need to understand some of the basics if you are adding new files and targets to the build.

  • The QEMU build system architecture
    • Stage 1: configure
    • Stage 2: Meson
    • Stage 3: makefiles
    • Important files for the build system
  • QEMU and Kconfig
    • The Kconfig language
    • Guidelines for writing Kconfig files
    • Writing and modifying default configurations
    • Kconfig.host
  • Testing in QEMU
    • Testing with “make check”
    • QEMU iotests
    • Container based tests
    • Thread Sanitizer
    • VM testing
    • Image fuzzer testing
    • Integration tests using the Avocado Framework
    • Testing with “make check-tcg”
    • Other TCG Tests
    • GCC gcov support
  • QTest Device Emulation Testing Framework
    • Qtest Driver Framework
    • QTest Protocol
    • libqtest API reference
  • CI
    • Definition of terms
    • Custom CI/CD variables
    • Jobs on Custom Runners
  • How to use the QAPI code generator
    • Introduction
    • The QAPI schema language
    • Client JSON Protocol introspection
    • Compatibility considerations
    • Code generation
  • Fuzzing
    • Basics
    • Building the fuzzers
    • Useful libFuzzer flags
    • Generating Coverage Reports
    • Adding a new fuzzer
    • The Generic Fuzzer
    • OSS-Fuzz
    • Building Crash Reproducers
    • Implementation Details / Fuzzer Lifecycle
  • Control-Flow Integrity (CFI)
    • Basics
    • Building with CFI
    • Using QEMU built with CFI
    • Incompatible code with CFI
    • Disabling CFI for a specific function
    • CFI and fuzzing
Next Previous

© Copyright 2022, The QEMU Project Developers.

Built with Sphinx using a theme provided by Read the Docs.

This documentation is for QEMU version 7.0.0.

QEMU and this manual are released under the GNU General Public License, version 2.