GNATDAS Manuals [23.0w (20220529)]¶
- 1. GNATcoverage User’s Guide
- 1.1. Getting Started
- 1.2. Specifying Units Of Interest
- 1.3. Producing binary traces with gnatcov run
- 1.4. Producing source traces with gnatcov instrument
- 1.4.1. Setting up the coverage runtime library
- 1.4.2. Instrumenting programs
- 1.4.3. Building instrumented components
- 1.4.4. Extracting a trace from standard output
- 1.4.5. Composed instrumentation
- 1.4.6. Instrumentation of a multi-languages project
- 1.4.7. Instrumentation and coverage of SPARK code
- 1.4.8. Example use cases
- 1.5. Source coverage analysis with gnatcov coverage
- 1.5.1. gnatcov coverage command line
- 1.5.2. Output report formats (
--annotate
) - 1.5.3. Statement Coverage analysis
- 1.5.4. Decision Coverage analysis
- 1.5.5. Modified Condition/Decision Coverage analysis
- 1.5.6. Synthetic metrics
- 1.5.7. Handling source relocation for annotated sources output formats
- 1.5.8. Inlining & Ada generic units
- 1.5.9. Handling Ada assertions and contracts
- 1.5.10. Processing of C macros
- 1.5.11. Optimization and non-coverable items
- 1.6. Object coverage analysis with gnatcov coverage
- 1.6.1. gnatcov coverage command line
- 1.6.2. Output report formats (
--annotate
) - 1.6.3. Object Instruction Coverage analysis (
--level=insn
) - 1.6.4. Object Branch Coverage analysis (
--level=branch
) - 1.6.5. Focusing on subprograms of interest (
--routines
) - 1.6.6. Inlining & Ada Generic units
- 1.6.7. Full object coverage considerations
- 1.7. Object/Source level metrics considerations
- 1.8. Coverage Consolidation
- 1.9. Coverage Exemptions
- 1.10. Using project files
- 1.11. Importing binary traces with gnatcov convert
- 1.12. Using GNATcoverage from GNAT Studio
- 1.13. Appendices
- 1.14. Glossary of terms & concepts
- 2. GNATtest User’s Guide
- 2.1. Running
gnattest
- 2.2. Switches for
gnattest
in framework generation mode - 2.3. Switches for
gnattest
in test execution mode - 2.4. Project Attributes for
gnattest
- 2.5. Simple Example
- 2.6. Setting Up and Tearing Down the Testing Environment
- 2.7. Regenerating Tests
- 2.8. Default Test Behavior
- 2.9. Testing Primitive Operations of Tagged Types
- 2.10. Testing Inheritance
- 2.11. Tagged Type Substitutability Testing
- 2.12. Testing with Contracts
- 2.13. Additional Tests
- 2.14. Individual Test Drivers
- 2.15. Stubbing
- 2.16. Integration with GNATcoverage
- 2.17. Putting Tests under Version Control
- 2.18. Current Limitations
- 2.1. Running
- 3. Using GNATtest with GNATcoverage
- 4. GNATfuzz User’s Guide
- 4.1. Introduction
- 4.2. GNATfuzz command line interface
- 4.3. GNATfuzz by example
- 4.3.1. Prerequisites and possible configurations
- 4.3.2. GNATfuzz automation capabilities and limitations
- 4.3.3. Fuzzing a simple Ada subprogram
- 4.3.4. Fuzzing an autogenerated test-harness with user-provided seeds
- 4.3.5. Fuzzing instantiations of generic subprograms
- 4.3.6. Fuzzing global and private state
- 4.3.7. Fuzzing Access Types
- 4.3.8. Filtering exceptions
- 4.3.9. Fuzzing C functions through Ada bindings
- 4.3.10. Resetting dynamically allocated memory when fuzz-testing with the AFL++
persistent
mode
- 4.4. The “User_Configuration” package
- 4.5. GNATfuzz stopping criteria
- 4.6. GNATfuzz integration in GNAT Studio
- 4.7. FAQ for GNATfuzz
- 4.8. GNATfuzz diagnostics and issue reporting