archive

package
v0.23.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const MetadataFileName = "bundle.yaml"

MetadataFileName is the name of the meta information yaml file within an artifact archive.

Variables

This section is empty.

Functions

func ExtractArchiveForTestsOnly

func ExtractArchiveForTestsOnly(bundle, dir string) error

ExtractArchiveForTestsOnly extracts the gzip-compressed tar archive bundle into dir.

Types

type ArchiveWriter

type ArchiveWriter struct {
	*tar.Writer
	// contains filtered or unexported fields
}

ArchiveWriter provides functions to create a gzip-compressed tar archive.

func NewArchiveWriter

func NewArchiveWriter(w io.Writer) *ArchiveWriter

func (*ArchiveWriter) Close

func (w *ArchiveWriter) Close() error

Close closes the tar writer and the gzip writer. It does not close the underlying io.Writer.

func (*ArchiveWriter) GetSourcePath

func (w *ArchiveWriter) GetSourcePath(archivePath string) string

func (*ArchiveWriter) HasFileEntry

func (w *ArchiveWriter) HasFileEntry(archivePath string) bool

func (*ArchiveWriter) WriteDir

func (w *ArchiveWriter) WriteDir(archiveBasePath string, sourceDir string) error

WriteDir traverses sourceDir recursively and writes all regular files and symlinks to the archive.

func (*ArchiveWriter) WriteFile

func (w *ArchiveWriter) WriteFile(archivePath string, sourcePath string) error

WriteFile writes the contents of sourcePath to the archive, with the filename archivePath (so when the archive is extracted, the file will be created at archivePath). Symlinks will be followed. WriteFile only handles regular files and symlinks.

func (w *ArchiveWriter) WriteHardLink(target string, linkname string) error

WriteHardLink adds a hard link header to the archive. When the archive is extracted, a hard link to target with the name linkname is created.

type CodeRevision

type CodeRevision struct {
	Git *GitRevision `yaml:"git,omitempty"`
}

type EngineOptions

type EngineOptions struct {
	Flags []string `yaml:"flags,omitempty"`
	Env   []string `yaml:"env,omitempty"`
}

type Fuzzer

type Fuzzer struct {
	Target    string `yaml:"target,omitempty"`
	Name      string `yaml:"name,omitempty"`
	Path      string `yaml:"path"`
	Engine    string `yaml:"engine"`
	Sanitizer string `yaml:"sanitizer,omitempty"`
	// The different YAML field name is *not* a typo: For historical reasons, the "build_dir" field is supposed to
	// include the root directory of the *source* rather than the build tree of the project. Rather than expose all
	// cifuzz devs to this inconsistency, we keep it in the serialization logic.
	ProjectDir    string        `yaml:"build_dir"`
	Dictionary    string        `yaml:"dictionary,omitempty"`
	Seeds         string        `yaml:"seeds,omitempty"`
	LibraryPaths  []string      `yaml:"library_paths,omitempty"`
	RuntimePaths  []string      `yaml:"runtime_paths,omitempty"`
	EngineOptions EngineOptions `yaml:"engine_options,omitempty"`
	MaxRunTime    uint          `yaml:"max_run_time,omitempty"`
}

Fuzzer specifies the type and locations of fuzzers contained in the archive.

type GitRevision

type GitRevision struct {
	Commit string `yaml:"commit,omitempty"`
	Branch string `yaml:"branch,omitempty"`
}

type Metadata

type Metadata struct {
	*RunEnvironment `yaml:"run_environment"`
	CodeRevision    *CodeRevision `yaml:"code_revision,omitempty"`
	Fuzzers         []*Fuzzer     `yaml:"fuzzers"`
}

Metadata defines meta information for artifacts contained within a fuzzing artifact archive.

func (*Metadata) FromYaml

func (a *Metadata) FromYaml(data []byte) error

func (*Metadata) ToYaml

func (a *Metadata) ToYaml() ([]byte, error)

type RunEnvironment

type RunEnvironment struct {
	// The docker image and tag to be used: eg. debian:stable
	Docker string
}

RunEnvironment specifies the environment in which the fuzzers are to be run.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL