Skip to content

Merge pull request #63 from softwaremill/use-jox

# for the full log view
GitHub Actions / Tests results failed Jan 25, 2024 in 1s

Tests results ❌

Tests failed

Report Passed Failed Skipped Time
core/target/test-reports/TEST-ox.CancelTest.xml 4✅ 5s
core/target/test-reports/TEST-ox.channels.ChannelTest.xml 22✅ 1❌ 16s
core/target/test-reports/TEST-ox.channels.SourceOpsAsViewTest.xml 6✅ 10ms
core/target/test-reports/TEST-ox.channels.SourceOpsDropTest.xml 4✅ 6ms
core/target/test-reports/TEST-ox.channels.SourceOpsEmptyTest.xml 2✅ 33ms
core/target/test-reports/TEST-ox.channels.SourceOpsFactoryMethodsTest.xml 4✅ 5ms
core/target/test-reports/TEST-ox.channels.SourceOpsFailedTest.xml 2✅ 2ms
core/target/test-reports/TEST-ox.channels.SourceOpsFoldTest.xml 6✅ 5ms
core/target/test-reports/TEST-ox.channels.SourceOpsForeachTest.xml 3✅ 0ms
core/target/test-reports/TEST-ox.channels.SourceOpsFutureSourceTest.xml 3✅ 12ms
core/target/test-reports/TEST-ox.channels.SourceOpsFutureTest.xml 3✅ 2ms
core/target/test-reports/TEST-ox.channels.SourceOpsHeadOptionTest.xml 5✅ 1ms
core/target/test-reports/TEST-ox.channels.SourceOpsHeadTest.xml 5✅ 9ms
core/target/test-reports/TEST-ox.channels.SourceOpsInterleaveAllTest.xml 5✅ 10ms
core/target/test-reports/TEST-ox.channels.SourceOpsInterleaveTest.xml 8✅ 2ms
core/target/test-reports/TEST-ox.channels.SourceOpsIntersperseTest.xml 6✅ 3ms
core/target/test-reports/TEST-ox.channels.SourceOpsLastOptionTest.xml 5✅ 5ms
core/target/test-reports/TEST-ox.channels.SourceOpsLastTest.xml 5✅ 13ms
core/target/test-reports/TEST-ox.channels.SourceOpsMapParTest.xml 13✅ 9s
core/target/test-reports/TEST-ox.channels.SourceOpsMapParUnorderedTest.xml 16✅ 10s
core/target/test-reports/TEST-ox.channels.SourceOpsMapStatefulConcatTest.xml 4✅ 6ms
core/target/test-reports/TEST-ox.channels.SourceOpsMapStatefulTest.xml 4✅ 5ms
core/target/test-reports/TEST-ox.channels.SourceOpsMapTest.xml 3✅ 18s
core/target/test-reports/TEST-ox.channels.SourceOpsOrElseTest.xml 4✅ 12ms
core/target/test-reports/TEST-ox.channels.SourceOpsReduceTest.xml 7✅ 6ms
core/target/test-reports/TEST-ox.channels.SourceOpsTakeLastTest.xml 8✅ 9ms
core/target/test-reports/TEST-ox.channels.SourceOpsTakeWhileTest.xml 3✅ 2ms
core/target/test-reports/TEST-ox.channels.SourceOpsTest.xml 6✅ 305ms
core/target/test-reports/TEST-ox.channels.SourceOpsThrottleTest.xml 4✅ 103ms
core/target/test-reports/TEST-ox.channels.SourceOpsTransformTest.xml 4✅ 76ms
core/target/test-reports/TEST-ox.channels.SourceOpsZipAllTest.xml 6✅ 3ms
core/target/test-reports/TEST-ox.CollectParTest.xml 4✅ 689ms
core/target/test-reports/TEST-ox.ControlTest.xml 2✅ 6s
core/target/test-reports/TEST-ox.ExceptionTest.xml 8✅ 210ms
core/target/test-reports/TEST-ox.FilterParTest.xml 4✅ 1s
core/target/test-reports/TEST-ox.ForeachParTest.xml 3✅ 1s
core/target/test-reports/TEST-ox.ForkTest.xml 4✅ 4s
core/target/test-reports/TEST-ox.LocalTest.xml 2✅ 206ms
core/target/test-reports/TEST-ox.MapParTest.xml 4✅ 1s
core/target/test-reports/TEST-ox.ParTest.xml 4✅ 2s
core/target/test-reports/TEST-ox.RaceTest.xml 4✅ 1❌ 24s
core/target/test-reports/TEST-ox.ResourceTest.xml 5✅ 7ms
core/target/test-reports/TEST-ox.retry.BackoffRetryTest.xml 6✅ 7s
core/target/test-reports/TEST-ox.retry.DelayedRetryTest.xml 4✅ 3s
core/target/test-reports/TEST-ox.retry.ImmediateRetryTest.xml 13✅ 65ms
core/target/test-reports/TEST-ox.retry.JitterTest.xml 4✅ 13ms
core/target/test-reports/TEST-ox.retry.RetrySyntaxTest.xml 3✅ 1ms
core/target/test-reports/TEST-ox.SupervisedTest.xml 5✅ 1s
examples/target/test-reports/TEST-ox.crawler.test.CrawlerTest.xml 6✅ 13s
examples/target/test-reports/TEST-ox.ratelimiter.test.RateLimiterTest.xml 2✅ 5s
examples/target/test-reports/TEST-ox.sockets.test.RouterTest.xml 1✅ 332ms
examples/target/test-reports/TEST-ox.supervise.test.BroadcastTest.xml 1✅ 3s
kafka/target/test-reports/TEST-ox.kafka.KafkaTest.xml 4✅ 1❌ 55s

✅ core/target/test-reports/TEST-ox.CancelTest.xml

4 tests were completed in 5s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.CancelTest 4✅ 5s

✅ ox.CancelTest

✅ cancel should block until the fork completes
✅ cancel should block until the fork completes (stress test)
✅ cancelNow should return immediately, and wait for forks when scope completes
✅ cancelNow should (when followed by a joinEither) catch InterruptedException with which a fork ends

❌ core/target/test-reports/TEST-ox.channels.ChannelTest.xml

23 tests were completed in 16s with 22 passed, 1 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.ChannelTest 22✅ 1❌ 16s

❌ ox.channels.ChannelTest

✅ channel with capacity 0 should send and receive two spaced elements
✅ channel with capacity 0 should send and receive many elements, with concurrent senders & receivers
✅ channel with capacity 0 should select from two receives, if the last one has elements
✅ channel with capacity 0 should select from three receives, if the last one has elements
✅ channel with capacity 0 should select a receive from multiple channels
❌ channel with capacity 0 should select a receive until all channels are done
	org.scalatest.exceptions.TestFailedDueToTimeoutException: The code passed to eventually never returned normally. Attempted 17 times over 153.761988 milliseconds. Last failure message: List(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 9, 10, 8, 8, 8, 8, 8, 8, 8, 8, 9, 10, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10) had size 100 instead of expected size 101.
✅ channel with capacity 0 should properly report channel state
✅ channel with capacity 0 should skip channels, which are done immediately
✅ channel with capacity 0 should skip channels, which become done
✅ channel with capacity 0 should not skip channels, which are done immediately, when requested
✅ channel with capacity 0 should not skip channels, which become done, when requested
✅ buffered channel should select a send when one is available
✅ channel should receive from a channel until done
✅ channel should not receive from a channel in case of an error
✅ channel should select a receive from a channel if one is not done
✅ direct channel should wait until elements are transmitted
✅ direct channel should select a send when a receive is waiting
✅ direct channel should select a send or receive depending on availability
✅ default should use the default value if the clauses are not satisfiable
✅ default should use the default value if all channels are done
✅ default should not use the default value if a clause is satisfiable
✅ default should not use the default value if the channel is done, and a receiveOrDone clause is used
✅ default should use the default value once a source is done (buffered channel, stress test)

✅ core/target/test-reports/TEST-ox.channels.SourceOpsAsViewTest.xml

6 tests were completed in 10ms with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsAsViewTest 6✅ 10ms

✅ ox.channels.SourceOpsAsViewTest

✅ should map over a source as a view
✅ should return done, if all channels are done
✅ should select from sources mapped as view
✅ should filter over a source as a view
✅ should select from sources filtered as a view
✅ should propagate exceptions to the calling select

✅ core/target/test-reports/TEST-ox.channels.SourceOpsDropTest.xml

4 tests were completed in 6ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsDropTest 4✅ 6ms

✅ ox.channels.SourceOpsDropTest

✅ Source.drop should not drop from the empty source
✅ Source.drop should drop elements from the source
✅ Source.drop should return empty source when more elements than source length was dropped
✅ Source.drop should not drop when 'n == 0'

✅ core/target/test-reports/TEST-ox.channels.SourceOpsEmptyTest.xml

2 tests were completed in 33ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsEmptyTest 2✅ 33ms

✅ ox.channels.SourceOpsEmptyTest

✅ Source.empty should be done
✅ Source.empty should be empty

✅ core/target/test-reports/TEST-ox.channels.SourceOpsFactoryMethodsTest.xml

4 tests were completed in 5ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsFactoryMethodsTest 4✅ 5ms

✅ ox.channels.SourceOpsFactoryMethodsTest

✅ Source factory methods should create a source from a fork
✅ Source factory methods should create an iterating source
✅ Source factory methods should unfold a function
✅ Source factory methods should produce a range

✅ core/target/test-reports/TEST-ox.channels.SourceOpsFailedTest.xml

2 tests were completed in 2ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsFailedTest 2✅ 2ms

✅ ox.channels.SourceOpsFailedTest

✅ Source.failed should fail on receive
✅ Source.failed should be in error

✅ core/target/test-reports/TEST-ox.channels.SourceOpsFoldTest.xml

6 tests were completed in 5ms with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsFoldTest 6✅ 5ms

✅ ox.channels.SourceOpsFoldTest

✅ Source.fold should throw ChannelClosedException.Error with exception and message that was thrown during retrieval
✅ Source.fold should throw ChannelClosedException.Error for source failed without exception
✅ Source.fold should throw exception thrown in `f` when `f` throws
✅ Source.fold should return `zero` value from fold on the empty source
✅ Source.fold should return fold on non-empty source
✅ Source.fold should drain the source

✅ core/target/test-reports/TEST-ox.channels.SourceOpsForeachTest.xml

3 tests were completed in 0ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsForeachTest 3✅ 0ms

✅ ox.channels.SourceOpsForeachTest

✅ Source.foreach should iterate over a source
✅ Source.foreach should iterate over a source using for-syntax
✅ Source.foreach should convert source to a list

✅ core/target/test-reports/TEST-ox.channels.SourceOpsFutureSourceTest.xml

3 tests were completed in 12ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsFutureSourceTest 3✅ 12ms

✅ ox.channels.SourceOpsFutureSourceTest

✅ SourceOps.futureSource should return the original future failure when future fails
✅ SourceOps.futureSource should return the original future failure when future fails with ExecutionException
✅ SourceOps.futureSource should return future's source values

✅ core/target/test-reports/TEST-ox.channels.SourceOpsFutureTest.xml

3 tests were completed in 2ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsFutureTest 3✅ 2ms

✅ ox.channels.SourceOpsFutureTest

✅ Source.future should return the original future failure when future fails
✅ Source.future should return the original future failure when future fails with ExecutionException
✅ Source.future should return future value

✅ core/target/test-reports/TEST-ox.channels.SourceOpsHeadOptionTest.xml

5 tests were completed in 1ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsHeadOptionTest 5✅ 1ms

✅ ox.channels.SourceOpsHeadOptionTest

✅ Source.headOption should return None for the empty source
✅ Source.headOption should throw ChannelClosedException.Error with exception and message that was thrown during retrieval
✅ Source.headOption should throw ChannelClosedException.Error for source failed without exception
✅ Source.headOption should return Some element for the non-empty source
✅ Source.headOption should be not idempotent operation

✅ core/target/test-reports/TEST-ox.channels.SourceOpsHeadTest.xml

5 tests were completed in 9ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsHeadTest 5✅ 9ms

✅ ox.channels.SourceOpsHeadTest

✅ Source.head should throw NoSuchElementException for the empty source
✅ Source.head should throw ChannelClosedException.Error with exception and message that was thrown during retrieval
✅ Source.head should throw ChannelClosedException.Error for source failed without exception
✅ Source.head should return first value from non empty source
✅ Source.head should be not idempotent operation

✅ core/target/test-reports/TEST-ox.channels.SourceOpsInterleaveAllTest.xml

5 tests were completed in 10ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsInterleaveAllTest 5✅ 10ms

✅ ox.channels.SourceOpsInterleaveAllTest

✅ Source.interleaveAll should interleave no sources
✅ Source.interleaveAll should interleave a single source
✅ Source.interleaveAll should interleave multiple sources
✅ Source.interleaveAll should interleave multiple sources using custom segment size
✅ Source.interleaveAll should interleave multiple sources using custom segment size and complete eagerly

✅ core/target/test-reports/TEST-ox.channels.SourceOpsInterleaveTest.xml

8 tests were completed in 2ms with 8 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsInterleaveTest 8✅ 2ms

✅ ox.channels.SourceOpsInterleaveTest

✅ Source.interleave should interleave with an empty source
✅ Source.interleave should interleave two sources with default segment size
✅ Source.interleave should interleave two sources with default segment size and different lengths
✅ Source.interleave should interleave two sources with custom segment size
✅ Source.interleave should interleave two sources with custom segment size and different lengths
✅ Source.interleave should interleave two sources with different lengths and complete eagerly
✅ Source.interleave should when empty, interleave with a non-empty source and complete eagerly
✅ Source.interleave should interleave with an empty source and complete eagerly

✅ core/target/test-reports/TEST-ox.channels.SourceOpsIntersperseTest.xml

6 tests were completed in 3ms with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsIntersperseTest 6✅ 3ms

✅ ox.channels.SourceOpsIntersperseTest

✅ Source.intersperse should intersperse with inject only over an empty source
✅ Source.intersperse should intersperse with inject only over a source with one element
✅ Source.intersperse should intersperse with inject only over a source with multiple elements
✅ Source.intersperse should intersperse with start, inject and end over an empty source
✅ Source.intersperse should intersperse with start, inject and end over a source with one element
✅ Source.intersperse should intersperse with start, inject and end over a source with multiple elements

✅ core/target/test-reports/TEST-ox.channels.SourceOpsLastOptionTest.xml

5 tests were completed in 5ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsLastOptionTest 5✅ 5ms

✅ ox.channels.SourceOpsLastOptionTest

✅ SourceOps.lastOption should return None for the empty source
✅ SourceOps.lastOption should throw ChannelClosedException.Error with exception and message that was thrown during retrieval
✅ SourceOps.lastOption should throw ChannelClosedException.Error for source failed without exception
✅ SourceOps.lastOption should return last element wrapped in Some for the non-empty source
✅ SourceOps.lastOption should drain the source

✅ core/target/test-reports/TEST-ox.channels.SourceOpsLastTest.xml

5 tests were completed in 13ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsLastTest 5✅ 13ms

✅ ox.channels.SourceOpsLastTest

✅ SourceOps.last should throw NoSuchElementException for the empty source
✅ SourceOps.last should throw ChannelClosedException.Error with exception and message that was thrown during retrieval
✅ SourceOps.last should throw ChannelClosedException.Error for source failed without exception
✅ SourceOps.last should return last element for the non-empty source
✅ SourceOps.last should drain the source

✅ core/target/test-reports/TEST-ox.channels.SourceOpsMapParTest.xml

13 tests were completed in 9s with 13 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsMapParTest 13✅ 9s

✅ ox.channels.SourceOpsMapParTest

✅ mapPar should map over a source with parallelism limit 1
✅ mapPar should map over a source with parallelism limit 2
✅ mapPar should map over a source with parallelism limit 3
✅ mapPar should map over a source with parallelism limit 4
✅ mapPar should map over a source with parallelism limit 5
✅ mapPar should map over a source with parallelism limit 6
✅ mapPar should map over a source with parallelism limit 7
✅ mapPar should map over a source with parallelism limit 8
✅ mapPar should map over a source with parallelism limit 9
✅ mapPar should map over a source with parallelism limit 10
✅ mapPar should map over a source with parallelism limit 10 (stress test)
✅ mapPar should propagate errors
✅ mapPar should cancel other running forks when there's an error

✅ core/target/test-reports/TEST-ox.channels.SourceOpsMapParUnorderedTest.xml

16 tests were completed in 10s with 16 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsMapParUnorderedTest 16✅ 10s

✅ ox.channels.SourceOpsMapParUnorderedTest

✅ Source.mapParUnordered should map over a source with parallelism limit 1
✅ Source.mapParUnordered should map over a source with parallelism limit 2
✅ Source.mapParUnordered should map over a source with parallelism limit 3
✅ Source.mapParUnordered should map over a source with parallelism limit 4
✅ Source.mapParUnordered should map over a source with parallelism limit 5
✅ Source.mapParUnordered should map over a source with parallelism limit 6
✅ Source.mapParUnordered should map over a source with parallelism limit 7
✅ Source.mapParUnordered should map over a source with parallelism limit 8
✅ Source.mapParUnordered should map over a source with parallelism limit 9
✅ Source.mapParUnordered should map over a source with parallelism limit 10
✅ Source.mapParUnordered should map over a source with parallelism limit 10 (stress test)
✅ Source.mapParUnordered should propagate errors
✅ Source.mapParUnordered should complete running forks and not start new ones when the mapping function fails
✅ Source.mapParUnordered should complete running forks and not start new ones when the upstream fails
✅ Source.mapParUnordered should cancel running forks when the surrounding scope closes due to an error
✅ Source.mapParUnordered should emit downstream as soon as a value is ready, regardless of the incoming order

✅ core/target/test-reports/TEST-ox.channels.SourceOpsMapStatefulConcatTest.xml

4 tests were completed in 6ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsMapStatefulConcatTest 4✅ 6ms

✅ ox.channels.SourceOpsMapStatefulConcatTest

✅ Source.mapStatefulConcat should deduplicate
✅ Source.mapStatefulConcat should count consecutive
✅ Source.mapStatefulConcat should propagate errors in the mapping function
✅ Source.mapStatefulConcat should propagate errors in the completion callback

✅ core/target/test-reports/TEST-ox.channels.SourceOpsMapStatefulTest.xml

4 tests were completed in 5ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsMapStatefulTest 4✅ 5ms

✅ ox.channels.SourceOpsMapStatefulTest

✅ Source.mapStateful should zip with index
✅ Source.mapStateful should calculate a running total
✅ Source.mapStateful should propagate errors in the mapping function
✅ Source.mapStateful should propagate errors in the completion callback

✅ core/target/test-reports/TEST-ox.channels.SourceOpsMapTest.xml

3 tests were completed in 18s with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsMapTest 3✅ 18s

✅ ox.channels.SourceOpsMapTest

✅ Source.map should map over a source
✅ Source.map should map over a source (stress test)
✅ Source.map should map over a source using for-syntax

✅ core/target/test-reports/TEST-ox.channels.SourceOpsOrElseTest.xml

4 tests were completed in 12ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsOrElseTest 4✅ 12ms

✅ ox.channels.SourceOpsOrElseTest

✅ SourceOps.orElse should emit elements only from the original source when it is not empty
✅ SourceOps.orElse should emit elements only from the alternative source when the original source is created empty
✅ SourceOps.orElse should emit elements only from the alternative source when the original source is empty
✅ SourceOps.orElse should return failed source when the original source is failed

✅ core/target/test-reports/TEST-ox.channels.SourceOpsReduceTest.xml

7 tests were completed in 6ms with 7 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsReduceTest 7✅ 6ms

✅ ox.channels.SourceOpsReduceTest

✅ SourceOps.reduce should throw NoSuchElementException for reduce over the empty source
✅ SourceOps.reduce should throw ChannelClosedException.Error with exception and message that was thrown during retrieval
✅ SourceOps.reduce should throw ChannelClosedException.Error for source failed without exception
✅ SourceOps.reduce should throw exception thrown in `f` when `f` throws
✅ SourceOps.reduce should return first element from reduce over the single element source
✅ SourceOps.reduce should run reduce over on non-empty source
✅ SourceOps.reduce should drain the source

✅ core/target/test-reports/TEST-ox.channels.SourceOpsTakeLastTest.xml

8 tests were completed in 9ms with 8 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsTakeLastTest 8✅ 9ms

✅ ox.channels.SourceOpsTakeLastTest

✅ SourceOps.takeLast should throw ChannelClosedException.Error with exception and message that was thrown during retrieval
✅ SourceOps.takeLast should throw ChannelClosedException.Error for source failed without exception
✅ SourceOps.takeLast should fail to takeLast when n < 0
✅ SourceOps.takeLast should return empty list for the empty source
✅ SourceOps.takeLast should return empty list when n == 0 and list is not empty
✅ SourceOps.takeLast should return list with all elements if the source is smaller than requested number
✅ SourceOps.takeLast should return the last n elements from the source
✅ SourceOps.takeLast should drain the source

✅ core/target/test-reports/TEST-ox.channels.SourceOpsTakeWhileTest.xml

3 tests were completed in 2ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsTakeWhileTest 3✅ 2ms

✅ ox.channels.SourceOpsTakeWhileTest

✅ Source.takeWhile should not take from the empty source
✅ Source.takeWhile should take as long as predicate is satisfied
✅ Source.takeWhile should not take if predicate fails for first or more elements

✅ core/target/test-reports/TEST-ox.channels.SourceOpsTest.xml

6 tests were completed in 305ms with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsTest 6✅ 305ms

✅ ox.channels.SourceOpsTest

✅ should tick regularly
✅ should timeout
✅ should zip two sources
✅ should merge two sources
✅ should pipe one source to another
✅ should concatenate sources

✅ core/target/test-reports/TEST-ox.channels.SourceOpsThrottleTest.xml

4 tests were completed in 103ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsThrottleTest 4✅ 103ms

✅ ox.channels.SourceOpsThrottleTest

✅ Source.throttle should not throttle the empty source
✅ Source.throttle should throttle to specified elements per time units
✅ Source.throttle should fail to throttle when elements <= 0
✅ Source.throttle should fail to throttle when per lower than 1ms

✅ core/target/test-reports/TEST-ox.channels.SourceOpsTransformTest.xml

4 tests were completed in 76ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsTransformTest 4✅ 76ms

✅ ox.channels.SourceOpsTransformTest

✅ Source.transform should transform a source using a simple map
✅ Source.transform should transform a source using a complex chain of operations
✅ Source.transform should transform an infinite source
✅ Source.transform should transform an infinite source (stress test)

✅ core/target/test-reports/TEST-ox.channels.SourceOpsZipAllTest.xml

6 tests were completed in 3ms with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.channels.SourceOpsZipAllTest 6✅ 3ms

✅ ox.channels.SourceOpsZipAllTest

✅ Source.zipAll should not emit any element when both channels are empty
✅ Source.zipAll should emit this element when other channel is empty
✅ Source.zipAll should emit other element when this channel is empty
✅ Source.zipAll should emit matching elements when both channels are of the same size
✅ Source.zipAll should emit default for other channel if this channel is longer
✅ Source.zipAll should emit default for this channel if other channel is longer

✅ core/target/test-reports/TEST-ox.CollectParTest.xml

4 tests were completed in 689ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.CollectParTest 4✅ 689ms

✅ ox.CollectParTest

✅ collectPar should output the same type as input
✅ collectPar should run computations in parallel
✅ collectPar should run not more computations than limit
✅ collectPar should interrupt other computations in one fails

✅ core/target/test-reports/TEST-ox.ControlTest.xml

2 tests were completed in 6s with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.ControlTest 2✅ 6s

✅ ox.ControlTest

✅ timeout should short-circuit a long computation
✅ timeout should not interrupt a short computation

✅ core/target/test-reports/TEST-ox.ExceptionTest.xml

8 tests were completed in 210ms with 8 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.ExceptionTest 8✅ 210ms

✅ ox.ExceptionTest

✅ scoped should throw the exception thrown by a joined fork
✅ supervised should throw the exception thrown in the scope
✅ supervised should throw the exception thrown by a failing fork
✅ supervised should interrupt other forks when there's a failure, add suppressed interrupted exceptions
✅ supervised should interrupt other forks when there's a failure, add suppressed custom exceptions
✅ supervised should not add the original exception as suppressed
✅ supervised should add an exception as suppressed, even if it wraps the original exception
✅ joinEither should catch the exception with which a fork ends

✅ core/target/test-reports/TEST-ox.FilterParTest.xml

4 tests were completed in 1s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.FilterParTest 4✅ 1s

✅ ox.FilterParTest

✅ filterPar should output the same type as input
✅ filterPar should run computations in parallel
✅ filterPar should run not more computations than limit
✅ filterPar should interrupt other computations in one fails

✅ core/target/test-reports/TEST-ox.ForeachParTest.xml

3 tests were completed in 1s with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.ForeachParTest 3✅ 1s

✅ ox.ForeachParTest

✅ foreachPar should run computations in parallel
✅ foreachPar should run not more computations than limit
✅ foreachPar should interrupt other computations in one fails

✅ core/target/test-reports/TEST-ox.ForkTest.xml

4 tests were completed in 4s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.ForkTest 4✅ 4s

✅ ox.ForkTest

✅ fork should run two forks concurrently
✅ fork should allow nested forks
✅ fork should allow extension method syntax
✅ fork should interrupt child forks when parents complete

✅ core/target/test-reports/TEST-ox.LocalTest.xml

2 tests were completed in 206ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.LocalTest 2✅ 206ms

✅ ox.LocalTest

✅ fork locals should properly propagate values
✅ fork locals should propagate values across multiple scopes

✅ core/target/test-reports/TEST-ox.MapParTest.xml

4 tests were completed in 1s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.MapParTest 4✅ 1s

✅ ox.MapParTest

✅ mapPar should output the same type as input
✅ mapPar should run computations in parallel
✅ mapPar should run not more computations than limit
✅ mapPar should interrupt other computations in one fails

✅ core/target/test-reports/TEST-ox.ParTest.xml

4 tests were completed in 2s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.ParTest 4✅ 2s

✅ ox.ParTest

✅ par should run computations in parallel
✅ par should interrupt other computations in one fails
✅ parLimit should run up to the given number of computations in parallel
✅ parLimit should interrupt other computations in one fails

❌ core/target/test-reports/TEST-ox.RaceTest.xml

5 tests were completed in 24s with 4 passed, 1 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.RaceTest 4✅ 1❌ 24s

❌ ox.RaceTest

✅ timeout should short-circuit a long computation
✅ timeout should not interrupt a short computation
✅ timeoutOption should short-circuit a long computation
❌ timeoutOption should race a slower and faster computation
	org.scalatest.exceptions.TestFailedException: 13426 was not less than 1000
✅ timeoutOption should race a faster and slower computation

✅ core/target/test-reports/TEST-ox.ResourceTest.xml

5 tests were completed in 7ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.ResourceTest 5✅ 7ms

✅ ox.ResourceTest

✅ useInScope should release resources after allocation
✅ useInScope should release resources in reverse order
✅ useInScope should release resources when there's an exception
✅ useInScope should release resources when there's an exception during releasing
✅ useScoped should release resources after allocation

✅ core/target/test-reports/TEST-ox.retry.BackoffRetryTest.xml

6 tests were completed in 7s with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.retry.BackoffRetryTest 6✅ 7s

✅ ox.retry.BackoffRetryTest

✅ Backoff retry should retry a function
✅ Backoff retry should retry a failing function forever
✅ Backoff retry should respect maximum delay
✅ Backoff retry should use jitter
✅ Backoff retry should retry an Either
✅ Backoff retry should retry a Try

✅ core/target/test-reports/TEST-ox.retry.DelayedRetryTest.xml

4 tests were completed in 3s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.retry.DelayedRetryTest 4✅ 3s

✅ ox.retry.DelayedRetryTest

✅ Delayed retry should retry a function
✅ Delayed retry should retry a failing function forever
✅ Delayed retry should retry an Either
✅ Delayed retry should retry a Try

✅ core/target/test-reports/TEST-ox.retry.ImmediateRetryTest.xml

13 tests were completed in 65ms with 13 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.retry.ImmediateRetryTest 13✅ 65ms

✅ ox.retry.ImmediateRetryTest

✅ Immediate retry should retry a succeeding function
✅ Immediate retry should fail fast when a function is not worth retrying
✅ Immediate retry should retry a succeeding function with a custom success condition
✅ Immediate retry should retry a failing function
✅ Immediate retry should retry a failing function forever
✅ Immediate retry should retry a succeeding Either
✅ Immediate retry should fail fast when an Either is not worth retrying
✅ Immediate retry should retry a succeeding Either with a custom success condition
✅ Immediate retry should retry a failing Either
✅ Immediate retry should retry a succeeding Try
✅ Immediate retry should fail fast when a Try is not worth retrying
✅ Immediate retry should retry a succeeding Try with a custom success condition
✅ Immediate retry should retry a failing Try

✅ core/target/test-reports/TEST-ox.retry.JitterTest.xml

4 tests were completed in 13ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.retry.JitterTest 4✅ 13ms

✅ ox.retry.JitterTest

✅ Jitter should use no jitter
✅ Jitter should use full jitter
✅ Jitter should use equal jitter
✅ Jitter should use decorrelated jitter

✅ core/target/test-reports/TEST-ox.retry.RetrySyntaxTest.xml

3 tests were completed in 1ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.retry.RetrySyntaxTest 3✅ 1ms

✅ ox.retry.RetrySyntaxTest

✅ Retry syntax should support operations that return a result directly
✅ Retry syntax should support operations that return a Try
✅ Retry syntax should support operations that return an Either

✅ core/target/test-reports/TEST-ox.SupervisedTest.xml

5 tests were completed in 1s with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.SupervisedTest 5✅ 1s

✅ ox.SupervisedTest

✅ supervised should wait until all forks complete
✅ supervised should not wait until daemon forks complete
✅ supervised should interrupt once any fork ends with an exception
✅ supervised should interrupt main fork once a fork ends with an exception
✅ supervised should not interrupt if an unsupervised fork ends with an exception

✅ examples/target/test-reports/TEST-ox.crawler.test.CrawlerTest.xml

6 tests were completed in 13s with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.crawler.test.CrawlerTest 6✅ 13s

✅ ox.crawler.test.CrawlerTest

✅ should crawl a test data set basic
✅ should crawl a test data set single domain chain
✅ should crawl a test data set multiple domain chain
✅ should crawl a test data set dense links
✅ should crawl a test data set single domain chain (timed)
✅ should crawl a test data set dense links (timed)

✅ examples/target/test-reports/TEST-ox.ratelimiter.test.RateLimiterTest.xml

2 tests were completed in 5s with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.ratelimiter.test.RateLimiterTest 2✅ 5s

✅ ox.ratelimiter.test.RateLimiterTest

✅ should rate limit futures scheduled upfront
✅ should maintain the rate limit in all time windows

✅ examples/target/test-reports/TEST-ox.sockets.test.RouterTest.xml

1 tests were completed in 332ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.sockets.test.RouterTest 1✅ 332ms

✅ ox.sockets.test.RouterTest

✅ should distribute message and connect new clients

✅ examples/target/test-reports/TEST-ox.supervise.test.BroadcastTest.xml

1 tests were completed in 3s with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.supervise.test.BroadcastTest 1✅ 3s

✅ ox.supervise.test.BroadcastTest

✅ should forward messages and recover from failures

❌ kafka/target/test-reports/TEST-ox.kafka.KafkaTest.xml

5 tests were completed in 55s with 4 passed, 1 failed and 0 skipped.

Test suite Passed Failed Skipped Time
ox.kafka.KafkaTest 4✅ 1❌ 55s

❌ ox.kafka.KafkaTest

✅ source should receive messages from a topic
✅ stage should publish messages to a topic
❌ stage should commit offsets of processed messages
	org.scalatest.exceptions.TestFailedException: "[10]" was not equal to "[4]"
✅ drain should publish messages to a topic
✅ drain should commit offsets of processed messages

Annotations

Check failure on line 121 in core/src/test/scala/ox/channels/ChannelTest.scala

See this annotation in the file changed.

@github-actions github-actions / Tests results

ox.channels.ChannelTest ► channel with capacity 0 should select a receive until all channels are done

Failed test found in:
  core/target/test-reports/TEST-ox.channels.ChannelTest.xml
Error:
  org.scalatest.exceptions.TestFailedDueToTimeoutException: The code passed to eventually never returned normally. Attempted 17 times over 153.761988 milliseconds. Last failure message: List(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 9, 10, 8, 8, 8, 8, 8, 8, 8, 8, 9, 10, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10) had size 100 instead of expected size 101.
Raw output
org.scalatest.exceptions.TestFailedDueToTimeoutException: The code passed to eventually never returned normally. Attempted 17 times over 153.761988 milliseconds. Last failure message: List(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 9, 10, 8, 8, 8, 8, 8, 8, 8, 8, 9, 10, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10) had size 100 instead of expected size 101.
	at org.scalatest.enablers.Retrying$.org$scalatest$enablers$Retrying$$anon$5$$_$tryTryAgain$2(Retrying.scala:219)
	at org.scalatest.enablers.Retrying$$anon$5.retry(Retrying.scala:226)
	at org.scalatest.concurrent.Eventually$.callRetry(Eventually.scala:444)
	at ox.channels.ChannelTest.testFun$proxy6$1$$anonfun$1(ChannelTest.scala:121)
	at ox.scoped$package$.scoped(scoped.scala:48)
	at ox.channels.ChannelTest.testFun$proxy6$1(ChannelTest.scala:124)
	at ox.channels.ChannelTest.$init$$$anonfun$1$$anonfun$6(ChannelTest.scala:125)
	at org.scalatest.Transformer.apply$$anonfun$1(Transformer.scala:22)
	at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
	at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:31)
	at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
	at org.scalatest.Transformer.apply(Transformer.scala:22)
	at org.scalatest.Transformer.apply(Transformer.scala:21)
	at org.scalatest.flatspec.AnyFlatSpecLike$$anon$5.apply(AnyFlatSpecLike.scala:1717)
	at org.scalatest.TestSuite.withFixture(TestSuite.scala:196)
	at org.scalatest.TestSuite.withFixture$(TestSuite.scala:138)
	at org.scalatest.flatspec.AnyFlatSpec.withFixture(AnyFlatSpec.scala:1685)
	at org.scalatest.flatspec.AnyFlatSpecLike.invokeWithFixture$1(AnyFlatSpecLike.scala:1723)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTest$$anonfun$1(AnyFlatSpecLike.scala:1727)
	at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTest(AnyFlatSpecLike.scala:1727)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTest$(AnyFlatSpecLike.scala:51)
	at org.scalatest.flatspec.AnyFlatSpec.runTest(AnyFlatSpec.scala:1685)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTests$$anonfun$1(AnyFlatSpecLike.scala:1785)
	at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:413)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
	at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:390)
	at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:427)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
	at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:396)
	at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:475)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTests(AnyFlatSpecLike.scala:1785)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTests$(AnyFlatSpecLike.scala:51)
	at org.scalatest.flatspec.AnyFlatSpec.runTests(AnyFlatSpec.scala:1685)
	at org.scalatest.Suite.run(Suite.scala:1114)
	at org.scalatest.Suite.run$(Suite.scala:564)
	at org.scalatest.flatspec.AnyFlatSpec.org$scalatest$flatspec$AnyFlatSpecLike$$super$run(AnyFlatSpec.scala:1685)
	at org.scalatest.flatspec.AnyFlatSpecLike.run$$anonfun$1(AnyFlatSpecLike.scala:1830)
	at org.scalatest.SuperEngine.runImpl(Engine.scala:535)
	at org.scalatest.flatspec.AnyFlatSpecLike.run(AnyFlatSpecLike.scala:1830)
	at org.scalatest.flatspec.AnyFlatSpecLike.run$(AnyFlatSpecLike.scala:51)
	at org.scalatest.flatspec.AnyFlatSpec.run(AnyFlatSpec.scala:1685)
	at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:321)
	at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:517)
	at sbt.TestRunner.runTest$1(TestFramework.scala:153)
	at sbt.TestRunner.run(TestFramework.scala:168)
	at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.$anonfun$apply$1(TestFramework.scala:336)
	at sbt.TestFramework$.sbt$TestFramework$$withContextLoader(TestFramework.scala:296)
	at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply(TestFramework.scala:336)
	at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply(TestFramework.scala:336)
	at sbt.TestFunction.apply(TestFramework.scala:348)
	at sbt.Tests$.$anonfun$toTask$1(Tests.scala:436)
	at sbt.std.Transform$$anon$3.$anonfun$apply$2(Transform.scala:47)
	at sbt.std.Transform$$anon$4.work(Transform.scala:69)
	at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
	at sbt.Execute.work(Execute.scala:292)
	at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
	at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: org.scalatest.exceptions.TestFailedException: List(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 10, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 9, 10, 8, 8, 8, 8, 8, 8, 8, 8, 9, 10, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10) had size 100 instead of expected size 101
	at org.scalatest.matchers.MatchersHelper$.indicateFailure(MatchersHelper.scala:392)
	at org.scalatest.matchers.should.Matchers$ResultOfHaveWordForExtent.size(Matchers.scala:2736)
	at ox.channels.ChannelTest.fun$proxy2$1(ChannelTest.scala:122)
	at ox.channels.ChannelTest.testFun$proxy6$1$$anonfun$1$$anonfun$3(ChannelTest.scala:122)
	at org.scalatest.enablers.Retrying$.makeAValiantAttempt$1(Retrying.scala:184)
	at org.scalatest.enablers.Retrying$.org$scalatest$enablers$Retrying$$anon$5$$_$tryTryAgain$2(Retrying.scala:196)
	... 71 more

Check failure on line 11 in core/src/test/scala/ox/RaceTest.scala

See this annotation in the file changed.

@github-actions github-actions / Tests results

ox.RaceTest ► timeoutOption should race a slower and faster computation

Failed test found in:
  core/target/test-reports/TEST-ox.RaceTest.xml
Error:
  org.scalatest.exceptions.TestFailedException: 13426 was not less than 1000
Raw output
org.scalatest.exceptions.TestFailedException: 13426 was not less than 1000
	at org.scalatest.matchers.MatchersHelper$.indicateFailure(MatchersHelper.scala:392)
	at org.scalatest.matchers.should.Matchers$ShouldMethodHelperClass.shouldMatcher(Matchers.scala:6815)
	at org.scalatest.matchers.should.Matchers.should(Matchers.scala:6855)
	at org.scalatest.matchers.should.Matchers.should$(Matchers.scala:1808)
	at ox.RaceTest.should(RaceTest.scala:11)
	at ox.RaceTest.testFun$proxy4$1(RaceTest.scala:69)
	at ox.RaceTest.$init$$$anonfun$4(RaceTest.scala:55)
	at org.scalatest.Transformer.apply$$anonfun$1(Transformer.scala:22)
	at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
	at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:31)
	at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
	at org.scalatest.Transformer.apply(Transformer.scala:22)
	at org.scalatest.Transformer.apply(Transformer.scala:21)
	at org.scalatest.flatspec.AnyFlatSpecLike$$anon$5.apply(AnyFlatSpecLike.scala:1717)
	at org.scalatest.TestSuite.withFixture(TestSuite.scala:196)
	at org.scalatest.TestSuite.withFixture$(TestSuite.scala:138)
	at org.scalatest.flatspec.AnyFlatSpec.withFixture(AnyFlatSpec.scala:1685)
	at org.scalatest.flatspec.AnyFlatSpecLike.invokeWithFixture$1(AnyFlatSpecLike.scala:1723)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTest$$anonfun$1(AnyFlatSpecLike.scala:1727)
	at org.scalatest.SuperEngine.runTestImpl(Engine.scala:306)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTest(AnyFlatSpecLike.scala:1727)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTest$(AnyFlatSpecLike.scala:51)
	at org.scalatest.flatspec.AnyFlatSpec.runTest(AnyFlatSpec.scala:1685)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTests$$anonfun$1(AnyFlatSpecLike.scala:1785)
	at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:413)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
	at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:390)
	at org.scalatest.SuperEngine.traverseSubNodes$1$$anonfun$1(Engine.scala:427)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:333)
	at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:429)
	at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:396)
	at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:475)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTests(AnyFlatSpecLike.scala:1785)
	at org.scalatest.flatspec.AnyFlatSpecLike.runTests$(AnyFlatSpecLike.scala:51)
	at org.scalatest.flatspec.AnyFlatSpec.runTests(AnyFlatSpec.scala:1685)
	at org.scalatest.Suite.run(Suite.scala:1114)
	at org.scalatest.Suite.run$(Suite.scala:564)
	at org.scalatest.flatspec.AnyFlatSpec.org$scalatest$flatspec$AnyFlatSpecLike$$super$run(AnyFlatSpec.scala:1685)
	at org.scalatest.flatspec.AnyFlatSpecLike.run$$anonfun$1(AnyFlatSpecLike.scala:1830)
	at org.scalatest.SuperEngine.runImpl(Engine.scala:535)
	at org.scalatest.flatspec.AnyFlatSpecLike.run(AnyFlatSpecLike.scala:1830)
	at org.scalatest.flatspec.AnyFlatSpecLike.run$(AnyFlatSpecLike.scala:51)
	at org.scalatest.flatspec.AnyFlatSpec.run(AnyFlatSpec.scala:1685)
	at org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite(Framework.scala:321)
	at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:517)
	at sbt.TestRunner.runTest$1(TestFramework.scala:153)
	at sbt.TestRunner.run(TestFramework.scala:168)
	at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.$anonfun$apply$1(TestFramework.scala:336)
	at sbt.TestFramework$.sbt$TestFramework$$withContextLoader(TestFramework.scala:296)
	at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply(TestFramework.scala:336)
	at sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply(TestFramework.scala:336)
	at sbt.TestFunction.apply(TestFramework.scala:348)
	at sbt.Tests$.$anonfun$toTask$1(Tests.scala:436)
	at sbt.std.Transform$$anon$3.$anonfun$apply$2(Transform.scala:47)
	at sbt.std.Transform$$anon$4.work(Transform.scala:69)
	at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
	at sbt.Execute.work(Execute.scala:292)
	at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
	at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

Check failure on line 15 in kafka/src/test/scala/ox/kafka/KafkaTest.scala

See this annotation in the file changed.

@github-actions github-actions / Tests results

ox.kafka.KafkaTest ► stage should commit offsets of processed messages

Failed test found in:
  kafka/target/test-reports/TEST-ox.kafka.KafkaTest.xml
Error:
  org.scalatest.exceptions.TestFailedException: "[10]" was not equal to "[4]"
Raw output
org.scalatest.exceptions.TestFailedException: "[10]" was not equal to "[4]"
	at org.scalatest.matchers.MatchersHelper$.indicateFailure(MatchersHelper.scala:392)
	at org.scalatest.matchers.should.Matchers.shouldBe(Matchers.scala:7017)
	at org.scalatest.matchers.should.Matchers.shouldBe$(Matchers.scala:1808)
	at ox.kafka.KafkaTest.shouldBe(KafkaTest.scala:15)
	at ox.kafka.KafkaTest.testFun$proxy3$1$$anonfun$2(KafkaTest.scala:128)
	at ox.supervised$package$.$anonfun$1$$anonfun$1(supervised.scala:23)
	at ox.fork$package$.fork$$anonfun$1(fork.scala:24)
	at java.base/java.util.concurrent.StructuredTaskScope$SubtaskImpl.run(StructuredTaskScope.java:889)
	at java.base/java.lang.VirtualThread.run(VirtualThread.java:309)
	Suppressed: java.lang.InterruptedException
		at com.softwaremill.jox.Continuation.await(Channel.java:1087)
		at com.softwaremill.jox.Channel.updateCellSend(Channel.java:266)
		at com.softwaremill.jox.Channel.doSend(Channel.java:209)
		at com.softwaremill.jox.Channel.sendSafe(Channel.java:168)
		at ox.channels.Sink.send(Channel.scala:163)
		at ox.channels.Sink.send$(Channel.scala:139)
		at ox.channels.Channel.send(Channel.scala:230)
		at ox.kafka.KafkaSource$.subscribe$$anonfun$1$$anonfun$1$$anonfun$1(KafkaSource.scala:38)
		at java.base/java.lang.Iterable.forEach(Iterable.java:75)
		at ox.kafka.KafkaSource$.subscribe$$anonfun$1$$anonfun$1(KafkaSource.scala:38)
		at ox.kafka.KafkaSource$.subscribe$$anonfun$1$$anonfun$adapted$1(KafkaSource.scala:39)
		at scala.Function0.apply$mcV$sp(Function0.scala:42)
		at ox.control$package$.forever(control.scala:4)
		at ox.kafka.KafkaSource$.subscribe$$anonfun$1(KafkaSource.scala:39)
		at ox.fork$package$.forkDaemon$$anonfun$1(fork.scala:49)
		... 2 more
	Suppressed: java.lang.InterruptedException
		at com.softwaremill.jox.Continuation.await(Channel.java:1087)
		at com.softwaremill.jox.Channel.updateCellReceive(Channel.java:434)
		at com.softwaremill.jox.Channel.doReceive(Channel.java:373)
		at com.softwaremill.jox.Channel.receiveSafe(Channel.java:339)
		at ox.channels.Source.receive(Channel.scala:128)
		at ox.channels.Source.receive$(Channel.scala:99)
		at ox.channels.Channel.receive(Channel.scala:230)
		at ox.kafka.KafkaConsumerActor$.apply$$anonfun$1$$anonfun$1(KafkaConsumerActor.scala:21)
		at scala.Function0.apply$mcZ$sp(Function0.scala:42)
		at ox.control$package$.repeatWhile(control.scala:10)
		at ox.kafka.KafkaConsumerActor$.apply$$anonfun$1(KafkaConsumerActor.scala:55)
		at ox.kafka.KafkaConsumerActor$.apply$$anonfun$adapted$1(KafkaConsumerActor.scala:60)
		at ox.fork$package$.forkDaemon$$anonfun$1(fork.scala:49)
		... 2 more