// Code generated by protoc-gen-go. DO NOT EDIT.
// source: tast/test_result.proto

package tast

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// A proto representation of tast's TestResult golang / JSON object.
//
// Currently this proto is only used for storing tast results for analysis (e.g.
// by Dremel). The golang definition and comments should be used as a source of
// truth.
type TestResult struct {
	Name                 string       `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Pkg                  string       `protobuf:"bytes,2,opt,name=pkg,proto3" json:"pkg,omitempty"`
	AdditionalTimeNs     int64        `protobuf:"varint,3,opt,name=additional_time_ns,json=additionalTime,proto3" json:"additional_time_ns,omitempty"`
	Desc                 string       `protobuf:"bytes,4,opt,name=desc,proto3" json:"desc,omitempty"`
	Contacts             []string     `protobuf:"bytes,5,rep,name=contacts,proto3" json:"contacts,omitempty"`
	Attr                 []string     `protobuf:"bytes,6,rep,name=attr,proto3" json:"attr,omitempty"`
	Data                 []string     `protobuf:"bytes,7,rep,name=data,proto3" json:"data,omitempty"`
	Vars                 []string     `protobuf:"bytes,8,rep,name=vars,proto3" json:"vars,omitempty"`
	SoftwareDeps         []string     `protobuf:"bytes,9,rep,name=software_deps,json=softwareDeps,proto3" json:"software_deps,omitempty"`
	TimeoutNs            int64        `protobuf:"varint,10,opt,name=timeout_ns,json=timeout,proto3" json:"timeout_ns,omitempty"`
	Errors               []*TestError `protobuf:"bytes,11,rep,name=errors,proto3" json:"errors,omitempty"`
	Start                string       `protobuf:"bytes,12,opt,name=start,proto3" json:"start,omitempty"`
	End                  string       `protobuf:"bytes,13,opt,name=end,proto3" json:"end,omitempty"`
	OutDir               string       `protobuf:"bytes,14,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"`
	SkipReason           string       `protobuf:"bytes,15,opt,name=skip_reason,json=skipReason,proto3" json:"skip_reason,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *TestResult) Reset()         { *m = TestResult{} }
func (m *TestResult) String() string { return proto.CompactTextString(m) }
func (*TestResult) ProtoMessage()    {}
func (*TestResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_f6b5fbe71ba58b5c, []int{0}
}

func (m *TestResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TestResult.Unmarshal(m, b)
}
func (m *TestResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TestResult.Marshal(b, m, deterministic)
}
func (m *TestResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TestResult.Merge(m, src)
}
func (m *TestResult) XXX_Size() int {
	return xxx_messageInfo_TestResult.Size(m)
}
func (m *TestResult) XXX_DiscardUnknown() {
	xxx_messageInfo_TestResult.DiscardUnknown(m)
}

var xxx_messageInfo_TestResult proto.InternalMessageInfo

func (m *TestResult) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *TestResult) GetPkg() string {
	if m != nil {
		return m.Pkg
	}
	return ""
}

func (m *TestResult) GetAdditionalTimeNs() int64 {
	if m != nil {
		return m.AdditionalTimeNs
	}
	return 0
}

func (m *TestResult) GetDesc() string {
	if m != nil {
		return m.Desc
	}
	return ""
}

func (m *TestResult) GetContacts() []string {
	if m != nil {
		return m.Contacts
	}
	return nil
}

func (m *TestResult) GetAttr() []string {
	if m != nil {
		return m.Attr
	}
	return nil
}

func (m *TestResult) GetData() []string {
	if m != nil {
		return m.Data
	}
	return nil
}

func (m *TestResult) GetVars() []string {
	if m != nil {
		return m.Vars
	}
	return nil
}

func (m *TestResult) GetSoftwareDeps() []string {
	if m != nil {
		return m.SoftwareDeps
	}
	return nil
}

func (m *TestResult) GetTimeoutNs() int64 {
	if m != nil {
		return m.TimeoutNs
	}
	return 0
}

func (m *TestResult) GetErrors() []*TestError {
	if m != nil {
		return m.Errors
	}
	return nil
}

func (m *TestResult) GetStart() string {
	if m != nil {
		return m.Start
	}
	return ""
}

func (m *TestResult) GetEnd() string {
	if m != nil {
		return m.End
	}
	return ""
}

func (m *TestResult) GetOutDir() string {
	if m != nil {
		return m.OutDir
	}
	return ""
}

func (m *TestResult) GetSkipReason() string {
	if m != nil {
		return m.SkipReason
	}
	return ""
}

type TestError struct {
	Time                 string   `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
	Reason               string   `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
	File                 string   `protobuf:"bytes,3,opt,name=file,proto3" json:"file,omitempty"`
	Line                 int64    `protobuf:"varint,4,opt,name=line,proto3" json:"line,omitempty"`
	Stack                string   `protobuf:"bytes,5,opt,name=stack,proto3" json:"stack,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TestError) Reset()         { *m = TestError{} }
func (m *TestError) String() string { return proto.CompactTextString(m) }
func (*TestError) ProtoMessage()    {}
func (*TestError) Descriptor() ([]byte, []int) {
	return fileDescriptor_f6b5fbe71ba58b5c, []int{1}
}

func (m *TestError) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TestError.Unmarshal(m, b)
}
func (m *TestError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TestError.Marshal(b, m, deterministic)
}
func (m *TestError) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TestError.Merge(m, src)
}
func (m *TestError) XXX_Size() int {
	return xxx_messageInfo_TestError.Size(m)
}
func (m *TestError) XXX_DiscardUnknown() {
	xxx_messageInfo_TestError.DiscardUnknown(m)
}

var xxx_messageInfo_TestError proto.InternalMessageInfo

func (m *TestError) GetTime() string {
	if m != nil {
		return m.Time
	}
	return ""
}

func (m *TestError) GetReason() string {
	if m != nil {
		return m.Reason
	}
	return ""
}

func (m *TestError) GetFile() string {
	if m != nil {
		return m.File
	}
	return ""
}

func (m *TestError) GetLine() int64 {
	if m != nil {
		return m.Line
	}
	return 0
}

func (m *TestError) GetStack() string {
	if m != nil {
		return m.Stack
	}
	return ""
}

func init() {
	proto.RegisterType((*TestResult)(nil), "tast.TestResult")
	proto.RegisterType((*TestError)(nil), "tast.TestError")
}

func init() { proto.RegisterFile("tast/test_result.proto", fileDescriptor_f6b5fbe71ba58b5c) }

var fileDescriptor_f6b5fbe71ba58b5c = []byte{
	// 353 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0x92, 0x4d, 0xce, 0xd3, 0x30,
	0x10, 0x86, 0x55, 0xd2, 0xa6, 0x5f, 0xa6, 0x7f, 0xc8, 0x42, 0xc5, 0x82, 0x05, 0x51, 0x59, 0x10,
	0xb1, 0x28, 0x12, 0x5c, 0xa1, 0x5c, 0xc0, 0xea, 0x3e, 0x32, 0xc9, 0x14, 0x59, 0x49, 0xed, 0xc8,
	0x9e, 0xc0, 0x51, 0xb8, 0x2e, 0x9a, 0x49, 0xda, 0x6f, 0xf7, 0xce, 0xf3, 0x3a, 0xf3, 0x1b, 0x38,
	0x92, 0x4d, 0xf4, 0x8d, 0x30, 0x51, 0x1d, 0x31, 0x8d, 0x3d, 0x9d, 0x87, 0x18, 0x28, 0xa8, 0x25,
	0xf3, 0xd3, 0xbf, 0x0c, 0xe0, 0x8a, 0x89, 0x8c, 0x58, 0x4a, 0xc1, 0xd2, 0xdb, 0x3b, 0xea, 0x45,
	0xb9, 0xa8, 0x0a, 0x23, 0x5a, 0xbd, 0x85, 0x6c, 0xe8, 0x7e, 0xeb, 0x37, 0x82, 0x58, 0xaa, 0xaf,
	0xa0, 0x6c, 0xdb, 0x3a, 0x72, 0xc1, 0xdb, 0xbe, 0x26, 0x77, 0xc7, 0xda, 0x27, 0x9d, 0x95, 0x8b,
	0x2a, 0x33, 0xfb, 0x57, 0xe7, 0xea, 0xee, 0xc8, 0x19, 0x5b, 0x4c, 0x8d, 0x5e, 0x4e, 0x19, 0x59,
	0xab, 0x0f, 0xf0, 0xd2, 0x04, 0x4f, 0xb6, 0xa1, 0xa4, 0x57, 0x65, 0x56, 0x15, 0xe6, 0x19, 0xf3,
	0x7b, 0x4b, 0x14, 0x75, 0x2e, 0x5c, 0xb4, 0xe4, 0xb0, 0x64, 0xf5, 0x7a, 0x62, 0xac, 0x99, 0xfd,
	0xb1, 0x31, 0xe9, 0x97, 0x89, 0xb1, 0x56, 0x9f, 0x61, 0x97, 0xc2, 0x8d, 0xfe, 0xda, 0x88, 0x75,
	0x8b, 0x43, 0xd2, 0x85, 0x98, 0xdb, 0x07, 0xbc, 0xe0, 0x90, 0xd4, 0x47, 0x00, 0xee, 0x38, 0x8c,
	0xc4, 0x4d, 0x83, 0x34, 0xbd, 0x9e, 0x89, 0xfa, 0x02, 0x39, 0xc6, 0x18, 0x62, 0xd2, 0x9b, 0x32,
	0xab, 0x36, 0xdf, 0x0f, 0x67, 0xde, 0xd2, 0x99, 0x37, 0xf4, 0x93, 0xb9, 0x99, 0x6d, 0xf5, 0x0e,
	0x56, 0x89, 0x6c, 0x24, 0xbd, 0x95, 0xb9, 0xa6, 0x80, 0x57, 0x85, 0xbe, 0xd5, 0xbb, 0x69, 0x55,
	0xe8, 0x5b, 0xf5, 0x1e, 0xd6, 0x5c, 0xa9, 0x75, 0x51, 0xef, 0x85, 0xe6, 0x61, 0xa4, 0x8b, 0x8b,
	0xea, 0x13, 0x6c, 0x52, 0xe7, 0x86, 0x3a, 0xa2, 0x4d, 0xc1, 0xeb, 0x83, 0x98, 0xc0, 0xc8, 0x08,
	0x39, 0x8d, 0x50, 0x3c, 0xcb, 0xf2, 0xb4, 0xdc, 0xe2, 0xe3, 0x2e, 0xac, 0xd5, 0x11, 0xf2, 0xf9,
	0xe3, 0xe9, 0x34, 0x73, 0xc4, 0x6f, 0x6f, 0xae, 0x47, 0xb9, 0x47, 0x61, 0x44, 0x33, 0xeb, 0x9d,
	0x47, 0xb9, 0x42, 0x66, 0x44, 0xcf, 0x23, 0x34, 0x9d, 0x5e, 0x3d, 0x47, 0x68, 0xba, 0x5f, 0xb9,
	0xfc, 0x1d, 0x3f, 0xfe, 0x07, 0x00, 0x00, 0xff, 0xff, 0x64, 0xc8, 0x8c, 0x69, 0x37, 0x02, 0x00,
	0x00,
}
