Documentation ¶
Index ¶
- Constants
- Variables
- func APIPasswordFile(siaDir string) string
- func ComposeErrors(errs ...error) error
- func CopyDir(source, dest string) error
- func CopyFile(source, dest string) error
- func Critical(v ...interface{})
- func DefaultSiaDir() string
- func ExtendErr(s string, err error) error
- func ExtractTarGz(filename, dir string) error
- func IsVersion(str string) bool
- func JoinErrors(errs []error, sep string) error
- func Retry(tries int, durationBetweenAttempts time.Duration, fn func() error) (err error)
- func Select(v Var) interface{}
- func Severe(v ...interface{})
- func TempDir(dirs ...string) string
- func VersionCmp(a, b string) int
- type Var
Constants ¶
const ( // MaxEncodedVersionLength is the maximum length of a version string encoded // with the encode package. 100 is much larger than any version number we send // now, but it allows us to send additional information in the version string // later if we choose. For example appending the version string with the HEAD // commit hash. MaxEncodedVersionLength = 100 // Version is the current version of spd. Version = "1.3.8" )
const DEBUG = false
DEBUG set to false turns the debugging off
const POOL = false
POOL set to false disables a set of tests that require a running MySQL db set up for pool testing.
const Release = "standard"
Release refers to the standard release mode
const VLONG = false
VLONG disables a set of test cases that take a very long time to run
Variables ¶
var ( // GitRevision is the git commit hash used when built GitRevision string // BuildTime is the date and time the build was completed BuildTime string )
GitRevision and BuildTime get assigned via the Makefile when built.
var ReleaseTag string = "master"
ReleaseTag contains the release tag, such as "rc3". It is supplied at build time. For full releases, this string is blank.
var ( // SiaTestingDir is the directory that contains all of the files and // folders created during testing. SiaTestingDir = filepath.Join(os.TempDir(), "SiaTesting") )
Functions ¶
func APIPasswordFile ¶
APIPasswordFile returns the path to the API's password file given a Sia directory.
func ComposeErrors ¶
ComposeErrors will take multiple errors and compose them into a single errors with a longer message. Any nil errors used as inputs will be stripped out, and if there are zero non-nil inputs then 'nil' will be returned.
The original types of the errors is not preserved at all.
func Critical ¶
func Critical(v ...interface{})
Critical should be called if a sanity check has failed, indicating developer error. Critical is called with an extended message guiding the user to the issue tracker on Github. If the program does not panic, the call stack for the running goroutine is printed to help determine the error.
func DefaultSiaDir ¶
func DefaultSiaDir() string
DefaultSiaDir returns the default data directory of siad. The values for supported operating systems are:
Linux: $HOME/.sia MacOS: $HOME/Library/Application Support/Sia Windows: %LOCALAPPDATA%\Sia
func ExtendErr ¶
ExtendErr will return a new error which extends the input error with a string. If the input error is nil, then 'nil' will be returned, discarding the input string.
func ExtractTarGz ¶
ExtractTarGz extracts the specified .tar.gz file to dir, overwriting existing files in the event of a name conflict.
func JoinErrors ¶
JoinErrors concatenates the elements of errs to create a single error. The separator string sep is placed between elements in the resulting error. Nil errors are skipped. If errs is empty or only contains nil elements, JoinErrors returns nil.
func Retry ¶
Retry will call 'fn' 'tries' times, waiting 'durationBetweenAttempts' between each attempt, returning 'nil' the first time that 'fn' returns nil. If 'nil' is never returned, then the final error returned by 'fn' is returned.
func Select ¶
func Select(v Var) interface{}
Select returns the field of v that corresponds to the current Release.
Since the caller typically makes a type assertion on the result, it is important to point out that type assertions are stricter than conversions. Specifically, you cannot write:
type myint int Select(Var{0, 0, 0}).(myint)
Because 0 will be interpreted as an int, which is not assignable to myint. Instead, you must explicitly cast each field in the Var, or cast the return value of Select after the type assertion. The former is preferred.
func Severe ¶
func Severe(v ...interface{})
Severe will print a message to os.Stderr. If DEBUG has been set panic will be called as well. Severe should be called in situations which indicate significant problems for the user (such as disk failure or random number generation failure), but where crashing is not strictly required to preserve integrity.
func TempDir ¶
TempDir joins the provided directories and prefixes them with the Sia testing directory.
func VersionCmp ¶
VersionCmp returns an int indicating the difference between a and b. It follows the convention of bytes.Compare and big.Cmp:
-1 if a < b 0 if a == b +1 if a > b
One important quirk is that "1.1.0" is considered newer than "1.1", despite being numerically equal.