Merge pull request #63 from softwaremill/use-jox #502
Tests results ❌
✅ 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
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
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
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