本文整理匯總了Golang中github.com/flynn/go-check.C類的典型用法代碼示例。如果您正苦於以下問題:Golang C類的具體用法?Golang C怎麽用?Golang C使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了C類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: waitForJobEvents
func (s *DeployerSuite) waitForJobEvents(t *c.C, jobType string, events chan *ct.Job, expected []*ct.Job) {
debugf(t, "waiting for %d job events", len(expected))
actual := make([]*ct.Job, 0, len(expected))
loop:
for {
select {
case e, ok := <-events:
if !ok {
t.Fatal("unexpected close of job event stream")
}
// only track up and down events as we can't always
// predict the order of pending / starting / stopping
// events when scaling multiple jobs
if e.State != ct.JobStateUp && e.State != ct.JobStateDown {
continue
}
actual = append(actual, e)
if len(actual) == len(expected) {
break loop
}
case <-time.After(60 * time.Second):
t.Fatal("timed out waiting for job events")
}
}
for i, event := range expected {
t.Assert(actual[i].ReleaseID, c.Equals, event.ReleaseID)
t.Assert(actual[i].State, c.Equals, event.State)
t.Assert(actual[i].Type, c.Equals, jobType)
}
}
示例2: TestAttachFinishedInteractiveJob
func (s *HostSuite) TestAttachFinishedInteractiveJob(t *c.C) {
cluster := s.clusterClient(t)
// run a quick interactive job
cmd := exec.CommandUsingCluster(cluster, exec.DockerImage(imageURIs["test-apps"]), "/bin/true")
cmd.TTY = true
runErr := make(chan error)
go func() {
runErr <- cmd.Run()
}()
select {
case err := <-runErr:
t.Assert(err, c.IsNil)
case <-time.After(30 * time.Second):
t.Fatal("timed out waiting for interactive job")
}
h, err := cluster.Host(cmd.HostID)
t.Assert(err, c.IsNil)
// Getting the logs for the job should fail, as it has none because it was
// interactive
attachErr := make(chan error)
go func() {
_, err = h.Attach(&host.AttachReq{JobID: cmd.Job.ID, Flags: host.AttachFlagLogs}, false)
attachErr <- err
}()
select {
case err := <-attachErr:
t.Assert(err, c.NotNil)
case <-time.After(time.Second):
t.Error("timed out waiting for attach")
}
}
示例3: TestResourceLimits
func (s *HostSuite) TestResourceLimits(t *c.C) {
cmd := exec.JobUsingCluster(
s.clusterClient(t),
exec.DockerImage(imageURIs["test-apps"]),
&host.Job{
Config: host.ContainerConfig{Args: []string{"sh", "-c", resourceCmd}},
Resources: testResources(),
},
)
var out bytes.Buffer
cmd.Stdout = &out
runErr := make(chan error)
go func() {
runErr <- cmd.Run()
}()
select {
case err := <-runErr:
t.Assert(err, c.IsNil)
case <-time.After(30 * time.Second):
t.Fatal("timed out waiting for resource limits job")
}
assertResourceLimits(t, out.String())
}
示例4: TestExampleOutput
func (s *ControllerSuite) TestExampleOutput(t *c.C) {
examples := s.generateControllerExamples(t)
exampleKeys := make([]string, 0, len(examples))
skipExamples := []string{"migrate_cluster_domain"}
examplesLoop:
for key := range examples {
for _, skipKey := range skipExamples {
if key == skipKey {
continue examplesLoop
}
}
exampleKeys = append(exampleKeys, key)
}
sort.Strings(exampleKeys)
for _, key := range exampleKeys {
cacheKey := "https://flynn.io/schema/examples/controller/" + key
schema := s.schemaCache[cacheKey]
if schema == nil {
continue
}
data := examples[key]
errs := schema.Validate(nil, data)
var jsonData []byte
if len(errs) > 0 {
jsonData, _ = json.MarshalIndent(data, "", "\t")
}
t.Assert(errs, c.HasLen, 0, c.Commentf("%s validation errors: %v\ndata: %v\n", cacheKey, errs, string(jsonData)))
}
}
示例5: TestLog
func (s *CLISuite) TestLog(t *c.C) {
app := s.newCliTestApp(t)
defer app.cleanup()
t.Assert(app.flynn("run", "-d", "echo", "hello", "world"), Succeeds)
app.waitFor(ct.JobEvents{"": {ct.JobStateUp: 1, ct.JobStateDown: 1}})
t.Assert(app.flynn("log", "--raw-output"), Outputs, "hello world\n")
}
示例6: TestWithoutChecker
func (s *HealthcheckSuite) TestWithoutChecker(t *c.C) {
// start app with a service but no checker
app, _ := s.createAppWithService(t, "ping", &host.Service{
Name: "ping-without-checker",
Create: true,
})
t.Assert(flynn(t, "/", "-a", app.Name, "scale", "ping=1"), Succeeds)
// make sure app is registered and unregistered when the process terminates
_, err := s.discoverdClient(t).Instances("ping-without-checker", 3*time.Second)
t.Assert(err, c.IsNil)
events := make(chan *discoverd.Event)
stream, err := s.discoverdClient(t).Service("ping-without-checker").Watch(events)
defer stream.Close()
t.Assert(err, c.IsNil)
t.Assert(flynn(t, "/", "-a", app.Name, "scale", "ping=0"), Succeeds)
outer:
for {
select {
case e := <-events:
if e.Kind != discoverd.EventKindDown {
continue
}
break outer
case <-time.After(time.Second * 30):
t.Error("Timed out waiting for a down event!")
}
}
}
示例7: TestTCPApp
func (s *SchedulerSuite) TestTCPApp(t *c.C) {
app, _ := s.createApp(t)
t.Assert(flynn(t, "/", "-a", app.Name, "scale", "echoer=1"), Succeeds)
newRoute := flynn(t, "/", "-a", app.Name, "route", "add", "tcp", "-s", "echo-service")
t.Assert(newRoute, Succeeds)
t.Assert(newRoute.Output, Matches, `.+ on port \d+`)
str := strings.Split(strings.TrimSpace(string(newRoute.Output)), " ")
port := str[len(str)-1]
// use Attempts to give the processes time to start
if err := Attempts.Run(func() error {
servAddr := routerIP + ":" + port
conn, err := net.Dial("tcp", servAddr)
if err != nil {
return err
}
defer conn.Close()
msg := []byte("hello there!\n")
_, err = conn.Write(msg)
if err != nil {
return err
}
reply := make([]byte, len(msg))
_, err = conn.Read(reply)
if err != nil {
return err
}
t.Assert(reply, c.DeepEquals, msg)
return nil
}); err != nil {
t.Fatal(err)
}
}
示例8: TestLogStderr
func (s *CLISuite) TestLogStderr(t *c.C) {
app := s.newCliTestApp(t)
defer app.cleanup()
t.Assert(app.flynn("run", "-d", "sh", "-c", "echo hello && echo world >&2"), Succeeds)
app.waitFor(ct.JobEvents{"": {ct.JobStateUp: 1, ct.JobStateDown: 1}})
runLog := func(split bool) (stdout, stderr bytes.Buffer) {
args := []string{"log", "--raw-output"}
if split {
args = append(args, "--split-stderr")
}
args = append(args)
log := app.flynnCmd(args...)
log.Stdout = &stdout
log.Stderr = &stderr
t.Assert(log.Run(), c.IsNil, c.Commentf("STDERR = %q", stderr.String()))
return
}
stdout, stderr := runLog(false)
// non-deterministic order
t.Assert(stdout.String(), Matches, "hello")
t.Assert(stdout.String(), Matches, "world")
t.Assert(stderr.String(), c.Equals, "")
stdout, stderr = runLog(true)
t.Assert(stdout.String(), c.Equals, "hello\n")
t.Assert(stderr.String(), c.Equals, "world\n")
}
示例9: TestInterhostVolumeTransmitAPI
func (s *VolumeSuite) TestInterhostVolumeTransmitAPI(t *c.C) {
hosts, err := s.clusterClient(t).Hosts()
t.Assert(err, c.IsNil)
if len(hosts) < 2 {
t.Skip("need multiple hosts for this test")
}
s.doVolumeTransmitAPI(hosts[0], hosts[1], t)
}
示例10: TestGetNonExistentJob
func (s *HostSuite) TestGetNonExistentJob(t *c.C) {
cluster := s.clusterClient(t)
hosts, err := cluster.Hosts()
t.Assert(err, c.IsNil)
// Getting a non-existent job should error
_, err = hosts[0].GetJob("i-dont-exist")
t.Assert(hh.IsObjectNotFoundError(err), c.Equals, true)
}
示例11: TestAttachNonExistentJob
func (s *HostSuite) TestAttachNonExistentJob(t *c.C) {
cluster := s.clusterClient(t)
hosts, err := cluster.Hosts()
t.Assert(err, c.IsNil)
// Attaching to a non-existent job should error
_, err = hosts[0].Attach(&host.AttachReq{JobID: "none", Flags: host.AttachFlagLogs}, false)
t.Assert(err, c.NotNil)
}
示例12: TestDeployTimeout
func (s *CLISuite) TestDeployTimeout(t *c.C) {
timeout := flynn(t, "/", "-a", "status", "deployment", "timeout")
t.Assert(timeout, Succeeds)
t.Assert(timeout.Output, c.Equals, "120\n")
t.Assert(flynn(t, "/", "-a", "status", "deployment", "timeout", "150"), Succeeds)
timeout = flynn(t, "/", "-a", "status", "deployment", "timeout")
t.Assert(timeout, Succeeds)
t.Assert(timeout.Output, c.Equals, "150\n")
}
示例13: TestBlobstoreBackendAzure
func (s *BlobstoreSuite) TestBlobstoreBackendAzure(t *c.C) {
s3Config := os.Getenv("BLOBSTORE_AZURE_CONFIG")
if s3Config == "" {
// BLOBSTORE_AZURE_CONFIG should be set to a valid configuration like:
// backend=azure account_name=xxx account_key=xxx container=blobstore-ci
t.Skip("missing BLOBSTORE_AZURE_CONFIG env var")
}
s.testBlobstoreBackend(t, "azure", ".+blob.core.windows.net.+", `"BACKEND_AZURE=$BLOBSTORE_AZURE_CONFIG"`)
}
示例14: TestBlobstoreBackendS3
func (s *BlobstoreSuite) TestBlobstoreBackendS3(t *c.C) {
s3Config := os.Getenv("BLOBSTORE_S3_CONFIG")
if s3Config == "" {
// BLOBSTORE_S3_CONFIG should be set to a valid configuration like:
// backend=s3 access_key_id=xxx secret_access_key=xxx bucket=blobstore-ci region=us-east-1
t.Skip("missing BLOBSTORE_S3_CONFIG env var")
}
s.testBlobstoreBackend(t, "s3", ".+s3.amazonaws.com.+", `"BACKEND_S3=$BLOBSTORE_S3_CONFIG"`)
}
示例15: TestChecker
func (s *HealthcheckSuite) TestChecker(t *c.C) {
// start app with ping service, register with checker
app, _ := s.createAppWithService(t, "ping", &host.Service{
Name: "ping-checker",
Create: true,
Check: &host.HealthCheck{Type: "tcp"},
})
t.Assert(flynn(t, "/", "-a", app.Name, "scale", "ping=1"), Succeeds)
_, err := s.discoverdClient(t).Instances("ping-checker", 10*time.Second)
t.Assert(err, c.IsNil)
}