Models
Simscope tracks the model_version
of each Regression, from your version control system.
- Model Version is also called commit ID, revision, changelist, or SHA (depending on your version control).
Purpose
Model Versions let users figure out what changed in each regression to cause different test behavior.
- Also, users can reproduce a failure by switching to that
model_version
.
Here is a table of what Version Control systems refer to model_version
as:
Version Control System | Name |
---|---|
Git | SHA (hash) |
Subversion | commit/revision |
Perforce | changelist |
Viewing Models in Simscope
To view Models, click in the top navigation Misc → Models
Here is an example:
Commit vs Integrate
Simscope tracks two types of model versions:
- Commits are unintegrated or development checkins.
- Integrates are integrated commits into a stable branch (ie
master
/main
/HEAD
). Integrates may contain child commits, forming a tree structure.
→ See Integrated Models for instructions on enabling integrated models.
Example Integrate timeline
Here is a basic structure showing 3 integrated models, and 5 commits (8 total models):
integrate2
└── commit5
integrate1
├── commit4
├── commit3
└── commit2
integrate0
└── commit1
- With this tree, if a user is looking for a regression containing
commit3
, Simscope knows it is any regression on modelintegrate1
or newer.
Rules
Signature Rules only work on integrated commits. This ensures a stable timeline, so that Simscope knows whether any regression contains a fix commit (or if does not).
Resolving Rules
To resolve rules, Simscope will search its internal database of changelists, which
is based on integrate
regressions.
- These are regressions from a stable integrate, in your stable (ie master, mainline, trunk) branch, which always pass.
As opposed to development
regressions, which may or may not pass, and also may be in
a private area.
Integrate regressions require:
model_branch
field setmodel_version
field setmodel_timestamp
field setintegrate
flag set totrue
Enabling Integrated Models
→ See Integrated Models for instructions on enabling integrated models.