123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package main
- import (
- "bufio"
- "bytes"
- "encoding/json"
- "fmt"
- "testing"
- "time"
- )
- func TestGetEventsLineDelim(t *testing.T) {
- name := "testimageevents"
- defer deleteImages(name)
- _, err := buildImage(name,
- `FROM scratch
- MAINTAINER "docker"`,
- true)
- if err != nil {
- t.Fatal(err)
- }
- if err := deleteImages(name); err != nil {
- t.Fatal(err)
- }
- endpoint := fmt.Sprintf("/events?since=1&until=%d", time.Now().Unix())
- body, err := sockRequest("GET", endpoint)
- if err != nil {
- t.Fatal(err)
- }
- linesRead := 0
- scanner := bufio.NewScanner(bytes.NewReader(body))
- for scanner.Scan() && linesRead < 2 {
- line := scanner.Bytes()
- if len(line) == 0 {
- continue
- }
- // make sure line delimited json
- res := make(map[string]interface{})
- if err := json.Unmarshal(line, &res); err != nil {
- t.Fatalf("Unmarshaling the line as JSON failed: %v", err)
- }
- linesRead++
- }
- if err := scanner.Err(); err != nil {
- t.Fatalf("Scanner failed: %v", err)
- }
- if linesRead < 2 {
- t.Fatalf("Only %d lines were read from the stream", linesRead)
- }
- logDone("events - test the api response is line delimited json")
- }
|