version: "3"

services:

  runtime-setup:
    image: swift-nio:20.04-main
    build:
      args:
        base_image: "swiftlang/swift:nightly-main-focal"
        ubuntu_version: "focal"

  unit-tests:
    image: swift-nio:20.04-main

  integration-tests:
    image: swift-nio:20.04-main

  test:
    image: swift-nio:20.04-main
    environment:
      - MAX_ALLOCS_ALLOWED_1000_addHandlers=47050
      - MAX_ALLOCS_ALLOWED_1000_addHandlers_sync=40050
      - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlercontext=9050
      - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlername=9050
      - MAX_ALLOCS_ALLOWED_1000_addRemoveHandlers_handlertype=9050
      - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet=28050
      - MAX_ALLOCS_ALLOWED_1000_autoReadGetAndSet_sync=0
      - MAX_ALLOCS_ALLOWED_1000_getHandlers=9050
      - MAX_ALLOCS_ALLOWED_1000_getHandlers_sync=37
      - MAX_ALLOCS_ALLOWED_1000_reqs_1_conn=30450
      - MAX_ALLOCS_ALLOWED_1000_tcpbootstraps=4050
      - MAX_ALLOCS_ALLOWED_1000_tcpconnections=168050
      - MAX_ALLOCS_ALLOWED_1000_udp_reqs=12050
      - MAX_ALLOCS_ALLOWED_1000_udpbootstraps=2050
      - MAX_ALLOCS_ALLOWED_1000_udpconnections=93050
      - MAX_ALLOCS_ALLOWED_1_reqs_1000_conn=450050
      - MAX_ALLOCS_ALLOWED_bytebuffer_lots_of_rw=2050
      - MAX_ALLOCS_ALLOWED_creating_10000_headers=0
      - MAX_ALLOCS_ALLOWED_decode_1000_ws_frames=2050
      - MAX_ALLOCS_ALLOWED_encode_1000_ws_frames_holding_buffer=3
      - MAX_ALLOCS_ALLOWED_encode_1000_ws_frames_holding_buffer_with_space=3
      - MAX_ALLOCS_ALLOWED_encode_1000_ws_frames_new_buffer=3050
      - MAX_ALLOCS_ALLOWED_encode_1000_ws_frames_new_buffer_with_space=3050
      - MAX_ALLOCS_ALLOWED_future_erase_result=4050
      - MAX_ALLOCS_ALLOWED_future_lots_of_callbacks=59050
      - MAX_ALLOCS_ALLOWED_modifying_1000_circular_buffer_elements=0
      - MAX_ALLOCS_ALLOWED_modifying_byte_buffer_view=2050
      - MAX_ALLOCS_ALLOWED_ping_pong_1000_reqs_1_conn=4400
      - MAX_ALLOCS_ALLOWED_read_10000_chunks_from_file=160050
      - MAX_ALLOCS_ALLOWED_schedule_10000_tasks=90050
      - MAX_ALLOCS_ALLOWED_scheduling_10000_executions=20150
      - MAX_ALLOCS_ALLOWED_udp_1000_reqs_1_conn=12200
      - MAX_ALLOCS_ALLOWED_udp_1_reqs_1000_conn=188050
      # - SANITIZER_ARG=--sanitize=thread # TSan broken still
      - SWIFT_TEST_VERB=build # WARNING: THIS DISABLES ALL TESTS. Please remove (workaround https://bugs.swift.org/browse/SR-14268)

  performance-test:
    image: swift-nio:20.04-main

  shell:
    image: swift-nio:20.04-main

  echo:
    image: swift-nio:20.04-main

  http:
    image: swift-nio:20.04-main
