GNATDAS Manuals [25.0w (20240327)]
- 1. GNATcoverage User’s Guide
- 1.1. Getting Started
- 1.2. Specifying Units Of Interest
- 1.3. Producing source traces with gnatcov instrument
- 1.3.1. Setting up the coverage runtime library
- 1.3.2. Instrumenting programs
- 1.3.3. Building instrumented components
- 1.3.4. Extracting a trace from standard output
- 1.3.5. Composed instrumentation
- 1.3.6. Instrumentation of a multi-languages project
- 1.3.7. Instrumentation and coverage of SPARK code
- 1.3.8. Example use cases
- 1.3.9. Coverage runtime customization
- 1.3.10. Building instrumented programs with CCG
- 1.4. Producing source traces with integrated instrumentation (experimental)
- 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. Assertion True Coverage (ATC) analysis
- 1.5.7. Assertion True Condition Coverage (ATCC) analysis
- 1.5.8. Synthetic metrics
- 1.5.9. Handling source relocation for annotated sources output formats
- 1.5.10. Inlining & Ada generic units
- 1.5.11. Handling Ada assertions and contracts
- 1.5.12. Processing of C macros
- 1.5.13. Optimization and non-coverable items
- 1.6. Coverage Consolidation
- 1.7. Coverage Exemptions
- 1.8. Using project files
- 1.9. Using GNATcoverage from GNAT Studio
- 1.10. 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.19. Automatically generating test cases (experimental)
- 2.1. Running
- 3. GNATfuzz User’s Guide
- 3.1. Introduction
- 3.2. GNATfuzz command line interface
- 3.3. GNATfuzz by example
- 3.3.1. Prerequisites and possible configurations
- 3.3.2. GNATfuzz automation capabilities and limitations
- 3.3.3. Fuzzing a simple Ada subprogram
- 3.3.4. Fuzzing an autogenerated test-harness with user-provided seeds
- 3.3.5. Fuzzing instantiations of generic subprograms
- 3.3.6. Fuzzing global and private state
- 3.3.7. Fuzzing Access Types
- 3.3.8. Filtering exceptions
- 3.3.9. Fuzzing C functions through Ada bindings
- 3.3.10. Resetting dynamically allocated memory when fuzz-testing with the AFL++
persistent
mode - 3.3.11. CMPLOG (aka RedQueen) support
- 3.4. The “User_Configuration” package
- 3.5. GNATfuzz stopping criteria
- 3.6. GNATfuzz integration in GNAT Studio
- 3.7. FAQ for GNATfuzz
- 3.8. GNATfuzz diagnostics and issue reporting
- 3.8.1. GNATfuzz Error Codes and Exit Statuses
- 3.8.1.1. Error_Unknown
- 3.8.1.2. Invalid_Command_Line_Options
- 3.8.1.3. Invalid_GNATfuzz_Configuration_Options
- 3.8.1.4. Invalid_Fuzzable_Subprogram
- 3.8.1.5. Error_Initializing_Fuzzing_Campaigns
- 3.8.1.6. Error_Launching_Fuzzing_Campaigns
- 3.8.1.7. Error_During_Fuzzing_Campaigns
- 3.8.1.8. Error_Terminating_Campaigns
- 3.8.1.9. Error_Initializing_Supporting_Tool
- 3.8.1.10. Error_Executing_Supporting_Tool
- 3.8.1. GNATfuzz Error Codes and Exit Statuses
- 4. Using GNATtest with GNATcoverage
- 5. Using GNATtest with GNATfuzz (experimental)
- Appendix A. Using GNATcoverage Binary Traces
- Introduction
- Producing binary traces with gnatcov run
- Object coverage analysis with gnatcov coverage
- Object/Source level metrics considerations
- Using GNATcoverage from GNAT Studio
- Importing binary traces with gnatcov convert