Documentation ¶
Index ¶
- Variables
- func At(anns ...string) string
- func GoKerTestName(test string) string
- func ListAllTests(t *testing.T, pathToRoot string) []string
- func ListGoKerPackages(t *testing.T, pathToRoot string) []string
- func ListPackagesIn(t *testing.T, pathToRoot string, blacklist []string, bmDir string) []string
- func ListPorPkgTests(t *testing.T, pathToRoot string, blacklist []string) []string
- func ListSessionTypesPackages(t *testing.T, pathToRoot string, blacklist []string) []string
- func ListSimpleTests(t *testing.T, pathToRoot string) []string
- func ListSyncPkgCondTests(t *testing.T, pathToRoot string, blacklist []string) []string
- func ListSyncPkgTests(t *testing.T, pathToRoot string, blacklist []string) []string
- func ListTopPointerTests(t *testing.T, pathToRoot string, blacklist []string) []string
- func RecListPackagesIn(t *testing.T, pathToRoot string, blacklist []string, bmDir string) []string
- type AnnBlocks
- func (a AnnBlocks) FalseNegative() bool
- func (a AnnBlocks) FalsePositive() bool
- func (a AnnBlocks) Focused() AnnGoro
- func (a AnnBlocks) HasFocus() bool
- func (a AnnBlocks) Manager() NotesManager
- func (a AnnBlocks) Name() string
- func (a AnnBlocks) Nodes() map[cfg.Node]struct{}
- func (a AnnBlocks) Note() *expect.Note
- func (a AnnBlocks) Panicked() bool
- func (a1 AnnBlocks) Related() annList
- func (a AnnBlocks) String() string
- type AnnChan
- func (a AnnChan) Chan() ssa.Value
- func (a AnnChan) FalseNegative() bool
- func (a AnnChan) FalsePositive() bool
- func (a AnnChan) Manager() NotesManager
- func (a AnnChan) Name() string
- func (a AnnChan) Nodes() map[cfg.Node]struct{}
- func (a AnnChan) Note() *expect.Note
- func (a AnnChan) Panicked() bool
- func (a1 AnnChan) Related() annList
- func (a AnnChan) String() string
- type AnnChanQuery
- func (a AnnChanQuery) Chan() ssa.Value
- func (a *AnnChanQuery) ChanNote() AnnChan
- func (a1 AnnChanQuery) ChanRelated() []Annotation
- func (a AnnChanQuery) FalseNegative() bool
- func (a AnnChanQuery) FalsePositive() bool
- func (a AnnChanQuery) Focused() string
- func (a AnnChanQuery) FocusedNote() AnnGoro
- func (a AnnChanQuery) Gowner() string
- func (a AnnChanQuery) GownerNote() AnnGoro
- func (a AnnChanQuery) HasOwner() bool
- func (a AnnChanQuery) IsFocused() bool
- func (a AnnChanQuery) Manager() NotesManager
- func (a AnnChanQuery) Name() string
- func (a AnnChanQuery) Nodes() map[cfg.Node]struct{}
- func (a AnnChanQuery) Note() *expect.Note
- func (a AnnChanQuery) Panicked() bool
- func (a AnnChanQuery) Prop() string
- func (a1 AnnChanQuery) Related() annList
- func (a AnnChanQuery) String() string
- func (a AnnChanQuery) Value() L.Element
- type AnnFalseNegative
- func (a AnnFalseNegative) FalseNegative() bool
- func (a AnnFalseNegative) FalsePositive() bool
- func (a AnnFalseNegative) Manager() NotesManager
- func (a AnnFalseNegative) Name() string
- func (a AnnFalseNegative) Nodes() map[cfg.Node]struct{}
- func (a AnnFalseNegative) Note() *expect.Note
- func (a AnnFalseNegative) Panicked() bool
- func (a1 AnnFalseNegative) Related() annList
- func (a AnnFalseNegative) String() string
- type AnnFalsePositive
- func (a AnnFalsePositive) FalseNegative() bool
- func (a AnnFalsePositive) FalsePositive() bool
- func (a AnnFalsePositive) Manager() NotesManager
- func (a AnnFalsePositive) Name() string
- func (a AnnFalsePositive) Nodes() map[cfg.Node]struct{}
- func (a AnnFalsePositive) Note() *expect.Note
- func (a AnnFalsePositive) Panicked() bool
- func (a1 AnnFalsePositive) Related() annList
- func (a AnnFalsePositive) String() string
- type AnnFocused
- func (a AnnFocused) FalseNegative() bool
- func (a AnnFocused) FalsePositive() bool
- func (a AnnFocused) Goro() AnnGoro
- func (a AnnFocused) Manager() NotesManager
- func (a AnnFocused) Matches(g defs.Goro) bool
- func (a AnnFocused) Name() string
- func (a AnnFocused) Nodes() map[cfg.Node]struct{}
- func (a AnnFocused) Note() *expect.Note
- func (a AnnFocused) Panicked() bool
- func (a1 AnnFocused) Related() annList
- func (a AnnFocused) String() string
- type AnnGo
- func (a AnnGo) FalseNegative() bool
- func (a AnnGo) FalsePositive() bool
- func (a AnnGo) Go() cfg.Node
- func (a AnnGo) Manager() NotesManager
- func (a AnnGo) Name() string
- func (a AnnGo) Nodes() map[cfg.Node]struct{}
- func (a AnnGo) Note() *expect.Note
- func (a AnnGo) Panicked() bool
- func (a1 AnnGo) Related() annList
- func (a AnnGo) String() string
- type AnnGoro
- func (a AnnGoro) FalseNegative() bool
- func (a AnnGoro) FalsePositive() bool
- func (a AnnGoro) Goro() []cfg.Node
- func (a AnnGoro) Manager() NotesManager
- func (a AnnGoro) Matches(g defs.Goro) bool
- func (a AnnGoro) Name() string
- func (a AnnGoro) Nodes() map[cfg.Node]struct{}
- func (a AnnGoro) Note() *expect.Note
- func (a AnnGoro) Panicked() bool
- func (a1 AnnGoro) Related() annList
- func (a AnnGoro) String() string
- type AnnPanicked
- func (a AnnPanicked) FalseNegative() bool
- func (a AnnPanicked) FalsePositive() bool
- func (a AnnPanicked) Manager() NotesManager
- func (a AnnPanicked) Name() string
- func (a AnnPanicked) Nodes() map[cfg.Node]struct{}
- func (a AnnPanicked) Note() *expect.Note
- func (a AnnPanicked) Panicked() bool
- func (a1 AnnPanicked) Related() annList
- func (a AnnPanicked) String() string
- type AnnProgress
- type AnnReleases
- func (a AnnReleases) FalseNegative() bool
- func (a AnnReleases) FalsePositive() bool
- func (a AnnReleases) Focused() AnnGoro
- func (a AnnReleases) HasFocus() bool
- func (a AnnReleases) Manager() NotesManager
- func (a AnnReleases) Name() string
- func (a AnnReleases) Nodes() map[cfg.Node]struct{}
- func (a AnnReleases) Note() *expect.Note
- func (a AnnReleases) Panicked() bool
- func (a1 AnnReleases) Related() annList
- func (a AnnReleases) String() string
- type Annotation
- type AnnotationWithFocus
- type LoadResult
- type NotesManager
- func (n NotesManager) AnnotationOf(note *expect.Note) Annotation
- func (n NotesManager) Annotations() map[*expect.Note]Annotation
- func (mgr NotesManager) CreateAnnotation(note *expect.Note) Annotation
- func (n NotesManager) FindAllAnnotations(pred func(Annotation) bool) annList
- func (n NotesManager) FindAllNotes(find func(*expect.Note) bool) (notes map[*expect.Note]struct{})
- func (n NotesManager) FindGoro(name string) AnnGoro
- func (n NotesManager) FindNote(find func(*expect.Note) bool) (*expect.Note, bool)
- func (n NotesManager) ForEachAnnotation(do func(a Annotation))
- func (n NotesManager) ForEachNote(do func(i int, note *expect.Note))
- func (n NotesManager) LoadResult() LoadResult
- func (n NotesManager) NodeHasAnn(node cfg.Node, ann Annotation) bool
- func (n NotesManager) NodesForNote(note *expect.Note) map[cfg.Node]struct{}
- func (n NotesManager) NoteForCtrLoc(cl defs.CtrLoc) (*expect.Note, bool)
- func (n NotesManager) NoteForNode(node cfg.Node) (*expect.Note, bool)
- func (n NotesManager) Notes() []*expect.Note
- func (n NotesManager) NotesForNode(node cfg.Node) map[*expect.Note]struct{}
- func (n NotesManager) OrphansToAnnotations(orphans map[defs.Superloc]map[defs.Goro]struct{}) map[defs.Superloc]annList
- func (n NotesManager) String() (str string)
Constants ¶
This section is empty.
Variables ¶
var ( QRY_CAP = "cap" QRY_MULTIALLOC = "multialloc" QRY_STATUS = "status" QRY_BUFFER_F = "bufferF" QRY_BUFFER_I = "bufferI" )
var Ann = annFactory{}
Factory for creating annotation strings. Interpolate results with Go source code. Wrap multiple factory calls in the At function to concatenate multiple annotations on the same line and prefix with "//@ "
Functions ¶
func GoKerTestName ¶
func ListPackagesIn ¶
func ListPorPkgTests ¶
func ListSyncPkgCondTests ¶
func ListSyncPkgTests ¶
func ListTopPointerTests ¶
Types ¶
type AnnBlocks ¶
type AnnBlocks struct {
// contains filtered or unexported fields
}
func (AnnBlocks) FalseNegative ¶
func (a AnnBlocks) FalseNegative() bool
func (AnnBlocks) FalsePositive ¶
func (a AnnBlocks) FalsePositive() bool
func (AnnBlocks) Manager ¶
func (a AnnBlocks) Manager() NotesManager
type AnnChan ¶
type AnnChan struct {
// contains filtered or unexported fields
}
func (AnnChan) FalseNegative ¶
func (a AnnChan) FalseNegative() bool
func (AnnChan) FalsePositive ¶
func (a AnnChan) FalsePositive() bool
func (AnnChan) Manager ¶
func (a AnnChan) Manager() NotesManager
type AnnChanQuery ¶
type AnnChanQuery struct {
// contains filtered or unexported fields
}
func (AnnChanQuery) Chan ¶
func (a AnnChanQuery) Chan() ssa.Value
func (*AnnChanQuery) ChanNote ¶
func (a *AnnChanQuery) ChanNote() AnnChan
Retrieves the channel annotation with the same channel name.
func (AnnChanQuery) ChanRelated ¶
func (a1 AnnChanQuery) ChanRelated() []Annotation
Returns related channel queries.
func (AnnChanQuery) FalseNegative ¶
func (a AnnChanQuery) FalseNegative() bool
func (AnnChanQuery) FalsePositive ¶
func (a AnnChanQuery) FalsePositive() bool
func (AnnChanQuery) Focused ¶
func (a AnnChanQuery) Focused() string
func (AnnChanQuery) FocusedNote ¶
func (a AnnChanQuery) FocusedNote() AnnGoro
Retrieves the goroutine annotation for the focused goroutine of that channel query. It should always succeed.
func (AnnChanQuery) Gowner ¶
func (a AnnChanQuery) Gowner() string
func (AnnChanQuery) GownerNote ¶
func (a AnnChanQuery) GownerNote() AnnGoro
Retrieves the goroutine annotation for the goroutine that owns the channel. It should always succeed.
func (AnnChanQuery) HasOwner ¶
func (a AnnChanQuery) HasOwner() bool
func (AnnChanQuery) IsFocused ¶
func (a AnnChanQuery) IsFocused() bool
func (AnnChanQuery) Manager ¶
func (a AnnChanQuery) Manager() NotesManager
func (AnnChanQuery) Nodes ¶
func (a AnnChanQuery) Nodes() map[cfg.Node]struct{}
func (AnnChanQuery) Prop ¶
func (a AnnChanQuery) Prop() string
func (AnnChanQuery) Related ¶
func (a1 AnnChanQuery) Related() annList
Returns all annotations found on the same line as the given annotation.
func (AnnChanQuery) String ¶
func (a AnnChanQuery) String() string
func (AnnChanQuery) Value ¶
func (a AnnChanQuery) Value() L.Element
type AnnFalseNegative ¶
type AnnFalseNegative struct {
// contains filtered or unexported fields
}
func (AnnFalseNegative) FalseNegative ¶
func (a AnnFalseNegative) FalseNegative() bool
func (AnnFalseNegative) FalsePositive ¶
func (a AnnFalseNegative) FalsePositive() bool
func (AnnFalseNegative) Manager ¶
func (a AnnFalseNegative) Manager() NotesManager
func (AnnFalseNegative) Related ¶
func (a1 AnnFalseNegative) Related() annList
Returns all annotations found on the same line as the given annotation.
func (AnnFalseNegative) String ¶
func (a AnnFalseNegative) String() string
type AnnFalsePositive ¶
type AnnFalsePositive struct {
// contains filtered or unexported fields
}
func (AnnFalsePositive) FalseNegative ¶
func (a AnnFalsePositive) FalseNegative() bool
func (AnnFalsePositive) FalsePositive ¶
func (a AnnFalsePositive) FalsePositive() bool
func (AnnFalsePositive) Manager ¶
func (a AnnFalsePositive) Manager() NotesManager
func (AnnFalsePositive) Related ¶
func (a1 AnnFalsePositive) Related() annList
Returns all annotations found on the same line as the given annotation.
func (AnnFalsePositive) String ¶
func (a AnnFalsePositive) String() string
type AnnFocused ¶
type AnnFocused struct {
// contains filtered or unexported fields
}
func (AnnFocused) FalseNegative ¶
func (a AnnFocused) FalseNegative() bool
func (AnnFocused) FalsePositive ¶
func (a AnnFocused) FalsePositive() bool
func (AnnFocused) Goro ¶
func (a AnnFocused) Goro() AnnGoro
func (AnnFocused) Manager ¶
func (a AnnFocused) Manager() NotesManager
func (AnnFocused) Related ¶
func (a1 AnnFocused) Related() annList
Returns all annotations found on the same line as the given annotation.
func (AnnFocused) String ¶
func (a AnnFocused) String() string
type AnnGo ¶
type AnnGo struct {
// contains filtered or unexported fields
}
Annotation for naming spawning points
func (AnnGo) FalseNegative ¶
func (a AnnGo) FalseNegative() bool
func (AnnGo) FalsePositive ¶
func (a AnnGo) FalsePositive() bool
func (AnnGo) Manager ¶
func (a AnnGo) Manager() NotesManager
type AnnGoro ¶
type AnnGoro struct {
// contains filtered or unexported fields
}
Annotation for creating specific goroutines. Goroutines consist of a chain of spawning points. The order is given left to right from the root goroutine.
func (AnnGoro) FalseNegative ¶
func (a AnnGoro) FalseNegative() bool
func (AnnGoro) FalsePositive ¶
func (a AnnGoro) FalsePositive() bool
func (AnnGoro) Manager ¶
func (a AnnGoro) Manager() NotesManager
func (AnnGoro) Matches ¶
Checks whether a goroutine structure is represented by a goroutine annotation (only takes control locations into account). If the goroutine annotation is set to hardmatch, then the full spawning point chain must match. Otherwise, only the inner-most chain must.
type AnnPanicked ¶
type AnnPanicked struct {
// contains filtered or unexported fields
}
func (AnnPanicked) FalseNegative ¶
func (a AnnPanicked) FalseNegative() bool
func (AnnPanicked) FalsePositive ¶
func (a AnnPanicked) FalsePositive() bool
func (AnnPanicked) Manager ¶
func (a AnnPanicked) Manager() NotesManager
func (AnnPanicked) Related ¶
func (a1 AnnPanicked) Related() annList
Returns all annotations found on the same line as the given annotation.
func (AnnPanicked) String ¶
func (a AnnPanicked) String() string
type AnnProgress ¶
type AnnProgress interface { Annotation Focused() AnnGoro HasFocus() bool }
type AnnReleases ¶
type AnnReleases struct {
// contains filtered or unexported fields
}
func (AnnReleases) FalseNegative ¶
func (a AnnReleases) FalseNegative() bool
func (AnnReleases) FalsePositive ¶
func (a AnnReleases) FalsePositive() bool
func (AnnReleases) Focused ¶
func (a AnnReleases) Focused() AnnGoro
func (AnnReleases) HasFocus ¶
func (a AnnReleases) HasFocus() bool
func (AnnReleases) Manager ¶
func (a AnnReleases) Manager() NotesManager
func (AnnReleases) Nodes ¶
func (a AnnReleases) Nodes() map[cfg.Node]struct{}
func (AnnReleases) Related ¶
func (a1 AnnReleases) Related() annList
Returns all annotations found on the same line as the given annotation.
func (AnnReleases) String ¶
func (a AnnReleases) String() string
type Annotation ¶
type AnnotationWithFocus ¶
type AnnotationWithFocus interface { Annotation Focused() annList }
type LoadResult ¶
type LoadResult struct { MainPkg *packages.Package Prog *ssa.Program Mains []*ssa.Package Cfg *cfg.Cfg Goros u.GoTopology GoroCycles u.GoCycles Pointer *pointer.Result CallDAG graph.SCCDecomposition[*ssa.Function] CtrLocPriorities u.CtrLocPriorities WrittenFields u.WrittenFields }
func LoadExamplePackage ¶
func LoadExamplePackage(t *testing.T, pathToRoot string, pkg string) LoadResult
func LoadPackageFromSource ¶
func LoadPackageFromSource(t *testing.T, importPath string, content string) (res LoadResult)
func LoadResultFromPackages ¶
func LoadResultFromPackages(t *testing.T, pkgs []*packages.Package) (res LoadResult)
type NotesManager ¶
type NotesManager struct {
// contains filtered or unexported fields
}
func MakeNotesManager ¶
func MakeNotesManager( t *testing.T, loadRes LoadResult) (n NotesManager)
func (NotesManager) AnnotationOf ¶
func (n NotesManager) AnnotationOf(note *expect.Note) Annotation
func (NotesManager) Annotations ¶
func (n NotesManager) Annotations() map[*expect.Note]Annotation
func (NotesManager) CreateAnnotation ¶
func (mgr NotesManager) CreateAnnotation(note *expect.Note) Annotation
func (NotesManager) FindAllAnnotations ¶
func (n NotesManager) FindAllAnnotations(pred func(Annotation) bool) annList
func (NotesManager) FindAllNotes ¶
func (NotesManager) FindGoro ¶
func (n NotesManager) FindGoro(name string) AnnGoro
func (NotesManager) ForEachAnnotation ¶
func (n NotesManager) ForEachAnnotation(do func(a Annotation))
func (NotesManager) ForEachNote ¶
func (n NotesManager) ForEachNote( do func(i int, note *expect.Note), )
func (NotesManager) LoadResult ¶
func (n NotesManager) LoadResult() LoadResult
func (NotesManager) NodeHasAnn ¶
func (n NotesManager) NodeHasAnn(node cfg.Node, ann Annotation) bool
func (NotesManager) NodesForNote ¶
func (n NotesManager) NodesForNote(note *expect.Note) map[cfg.Node]struct{}
func (NotesManager) NoteForCtrLoc ¶
func (NotesManager) NoteForNode ¶
func (NotesManager) Notes ¶
func (n NotesManager) Notes() []*expect.Note
func (NotesManager) NotesForNode ¶
func (n NotesManager) NotesForNode(node cfg.Node) map[*expect.Note]struct{}
func (NotesManager) OrphansToAnnotations ¶
func (NotesManager) String ¶
func (n NotesManager) String() (str string)