(t *testing.T)
| 144 | } |
| 145 | |
| 146 | func TestUpgraderOnOS(t *testing.T) { |
| 147 | u, err := newUpgrader(stdEnv, Options{}) |
| 148 | if err != nil { |
| 149 | t.Fatal("Can't create Upgrader:", err) |
| 150 | } |
| 151 | defer u.Stop() |
| 152 | |
| 153 | pipe := func() (r, w *os.File) { |
| 154 | t.Helper() |
| 155 | |
| 156 | r, w, err := os.Pipe() |
| 157 | if err != nil { |
| 158 | t.Fatal(err) |
| 159 | } |
| 160 | return r, w |
| 161 | } |
| 162 | |
| 163 | addPipe := func(name string, file *os.File) { |
| 164 | t.Helper() |
| 165 | |
| 166 | if err := u.Fds.AddFile(name, file); err != nil { |
| 167 | t.Fatal(err) |
| 168 | } |
| 169 | file.Close() |
| 170 | } |
| 171 | |
| 172 | rState, wState := pipe() |
| 173 | defer rState.Close() |
| 174 | |
| 175 | addPipe("wState", wState) |
| 176 | |
| 177 | rExit, wExit := pipe() |
| 178 | defer wExit.Close() |
| 179 | |
| 180 | addPipe("rExit", rExit) |
| 181 | |
| 182 | var readers []*os.File |
| 183 | defer func() { |
| 184 | for _, r := range readers { |
| 185 | r.Close() |
| 186 | } |
| 187 | }() |
| 188 | |
| 189 | for _, name := range names { |
| 190 | r, w := pipe() |
| 191 | addPipe(name, w) |
| 192 | readers = append(readers, r) |
| 193 | } |
| 194 | |
| 195 | if err := u.Upgrade(); err == nil { |
| 196 | t.Error("Upgrade before Ready should return an error") |
| 197 | } |
| 198 | |
| 199 | if err := u.Ready(); err != nil { |
| 200 | t.Fatal("Ready failed:", err) |
| 201 | } |
| 202 | |
| 203 | for { |
nothing calls this directly
no test coverage detected
searching dependent graphs…