Add distbuild parts to deadlines
This commit is contained in:
parent
ac687bc1d8
commit
7d04cf1ce3
4 changed files with 39 additions and 14 deletions
|
@ -1,3 +1,20 @@
|
|||
- group: Dist Build
|
||||
start: 25-04-2021 18:00
|
||||
deadline: 15-05-2021 23:59
|
||||
tasks:
|
||||
- task: disttest
|
||||
score: 0
|
||||
watch:
|
||||
- distbuild
|
||||
- task: distbuild
|
||||
score: 100
|
||||
watch:
|
||||
- distbuild
|
||||
- task: smartsched
|
||||
score: 200
|
||||
watch:
|
||||
- distbuild
|
||||
|
||||
- group: Low level
|
||||
start: 15-04-2021 18:00
|
||||
deadline: 25-04-2021 23:59
|
||||
|
|
|
@ -129,17 +129,3 @@ prime@bee ~/C/shad-go> find distbuild -iname '*.go' | grep -v test | grep -v moc
|
|||
2290 total
|
||||
```
|
||||
</details>
|
||||
|
||||
# Критерии оценки
|
||||
|
||||
Решение должно проходить все тесты, так же как в обычной задаче.
|
||||
|
||||
Задача разбита на две части:
|
||||
- `distbuild` проверяет решение всех "кубиков". Эта задача рассчитывается как обычная семинарская.
|
||||
- `disttest` проверяет интеграционные тесты. Эта задача оценивается как домашка. После успешной попытки, в таблице gdoc
|
||||
будет стоять 0. После этого, проверяющие должны будут просмотреть решение и заменить оценку в таблице на 1.
|
||||
Это будет значить, что домашнее задание засчитано. Code Review не будет, проверка нужна только чтобы удостовериться, что
|
||||
посылка честно проходит все тесты. Отдельный Merge Request создавать не нужно.
|
||||
|
||||
Чтобы запустить проверку внутри `disttest`, сделайте коммит добавляющий незначащий перенос строки в какой-нибудь файл
|
||||
из этой директории.
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
"path/filepath"
|
||||
"runtime"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.uber.org/goleak"
|
||||
|
@ -169,6 +170,15 @@ func newEnv(t *testing.T, config *Config) (e *env, cancel func()) {
|
|||
}(w)
|
||||
}
|
||||
|
||||
go func() {
|
||||
select {
|
||||
case <-time.After(time.Second * 10):
|
||||
panic("test hang")
|
||||
case <-env.Ctx.Done():
|
||||
return
|
||||
}
|
||||
}()
|
||||
|
||||
return env, func() {
|
||||
cancelRootContext()
|
||||
_ = env.HTTP.Shutdown(context.Background())
|
||||
|
|
|
@ -30,6 +30,7 @@ var (
|
|||
type testScheduler struct {
|
||||
*scheduler.Scheduler
|
||||
clockwork.FakeClock
|
||||
reset chan struct{}
|
||||
}
|
||||
|
||||
func newTestScheduler(t *testing.T) *testScheduler {
|
||||
|
@ -38,13 +39,24 @@ func newTestScheduler(t *testing.T) *testScheduler {
|
|||
s := &testScheduler{
|
||||
FakeClock: clockwork.NewFakeClock(),
|
||||
Scheduler: scheduler.NewScheduler(log, config),
|
||||
reset: make(chan struct{}),
|
||||
}
|
||||
|
||||
go func() {
|
||||
select {
|
||||
case <-time.After(time.Second * 5):
|
||||
panic("test hang")
|
||||
case <-s.reset:
|
||||
return
|
||||
}
|
||||
}()
|
||||
|
||||
scheduler.TimeAfter = s.FakeClock.After
|
||||
return s
|
||||
}
|
||||
|
||||
func (s *testScheduler) stop(t *testing.T) {
|
||||
close(s.reset)
|
||||
scheduler.TimeAfter = time.After
|
||||
goleak.VerifyNone(t)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue