WebFuzzing / EvoMaster

The first open-source AI-driven tool for automatically generating system-level test cases (also known as fuzzing) for web/enterprise applications. Currently targeting whitebox and blackbox testing of Web APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift).
GNU Lesser General Public License v3.0
510 stars 85 forks source link

Whitebox testing step by step #199

Closed mado89 closed 3 years ago

mado89 commented 4 years ago

Hi,

I am again trying to get EvoMaster running for testing an application but failing miserably again :( Here is what I did so far:

What fails:

martin@MAILUFTERL:~/projects/evomastertest$` gradle testClasses

Task :compileTestJava FAILED

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':compileTestJava'.

    Could not resolve all files for configuration ':testCompileClasspath'. Could not find org.evomaster:evomaster-client-java-controller:LATEST. Required by: project :

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/6.5.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 3s 3 actionable tasks: 3 executed

The project is located under: https://github.com/mado89/EvoMasterTest

openjournals/joss-reviews#2153

arcuri82 commented 4 years ago

hi, well, that is expected. From documentation:

In Gradle, it would be:

testCompile('org.evomaster:evomaster-client-java-controller:LATEST').

For the latest version, check Maven Central Repository. The latest version number should also appear at the top of the main readme page. If you are compiling directly from the EvoMaster source code, make sure to use mvn install to install the snapshot version of the Java client into your local Maven repository (e.g., under ~/.m2).

I guess I should make it explicit that the placeholder LATEST must be replaced with the actual version number, e.g. either 1.0.1 (most recent release) or 1.0.2-SNAPSHOT (work-in-progress version)

mado89 commented 4 years ago

Yes, that would be good / improve the documentation. (Afaik 'LATEST' could in theory work). '1.0.2-SNAPSHOT' did not work for me. However, '1.0.1' did work. Not I can start implementing the controller

arcuri82 commented 4 years ago

LATEST as special keyword did work in Maven 2, but was removed in Maven 3. regarding 1.0.2-SNAPSHOT, did you do the following?

make sure to use mvn install to install the snapshot version of the Java client into your local Maven repository (e.g., under ~/.m2).

arcuri82 commented 4 years ago

clarification added to the documentation

arcuri82 commented 4 years ago

ah, forgot you are using Gradle... should check what is the equivalent of mvn install in Gradle.

mado89 commented 4 years ago

ah, forgot you are using Gradle... should check what is the equivalent of mvn install in Gradle.

Yes, that's why I did not notice this requirement. For now I guess it is fine. At least I can properly reference EvoMaster. The review is for 1.0.0 / 1.0.1 anyway

arcuri82 commented 4 years ago

I added now a clarification about Gradle and mvn install in the documentation

mado89 commented 4 years ago

That clarification looks good. I haven't tested the gradle way of using mvn install since I think this is not the typical usecase of your software (right?) However, I'd like to have a better documentation of the EmbeddedSutController methods. It would be nice to have a list of all methods which need to be implemented and what they are supposed to do. Please integrate this in the documentation. References to other code is fine but users (and me) might / are lost when they do not have much idea what to do

arcuri82 commented 4 years ago

All methods that needs to be implemented are abstract. Failure to implement them leads to compilation errors.

Each method provides documentation as Javadocs. How to read them depends on your IDE. They can also be read online here. I added this to the documentation.

However, it might well be that some of those methods need more clarifications and more text. Is there any specific method you find unclear? or all of them need more text?

mado89 commented 4 years ago

@arcuri82 Yes in my opinion they need much more documentation. Probably not documentation but rather a guidance HOW to implement them. By the way not all methods are documented. For example getAdditionalInfoList is not documented at all (if I am not mistaken).

I'd suggest to add information on the intended behaviour to both the java-documentation but also to the whitebox testing instructions at least for the most important ones. Keep in mind people have not used your software and have no clue about e.g. the nomenclature of it

mado89 commented 4 years ago

@arcuri82 Just wanted to check whether you received my last message?

I think that all methods need an explanation of how to implemented them or more clarification about their intended behaviour. I guess in most cases you could copy examples from your examples directory?

arcuri82 commented 4 years ago

More JavaDocs have now been added

mado89 commented 4 years ago

I am almost there. I hope there is just one last issue. When I start the driver and run evomaster the application starts but the v3/api-docs endpoint does not work. The application is started and I can access its endpoints but evomaster fails due to v3/api-docs not being available. Can you please help?

I receive the following output from evomaster: `java -jar ~/Downloads/evomaster.jar --maxTime 20s --outputFolder backboxTest/

14:36:08.369 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=//localhost:40100/controller/api/controllerInfo,age=24} onContentComplete 14:36:08.370 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=//localhost:40100/controller/api/controllerInfo,age=25} onRequestComplete 14:36:08.371 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpInput - HttpInputOverHTTP@2b127172[c=0,q=0,[0]=null,s=STREAM] addContent EOF 14:36:08.372 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=71/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=END,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=//localhost:40100/controller/api/controllerInfo,age=27} parsed true HttpParser{s=END,0 of -1} 14:36:08.372 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - releaseRequestBuffer HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=72/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=END,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=//localhost:40100/controller/api/controllerInfo,age=27} 14:36:08.372 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=//localhost:40100/controller/api/controllerInfo,age=27} handle //localhost:40100/controller/api/controllerInfo 14:36:08.373 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannelState - handling HttpChannelState@feb636{s=IDLE a=NOT_ASYNC i=true r=IDLE w=false} 14:36:08.375 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=1,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/controllerInfo,age=30} action DISPATCH 14:36:08.383 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.Server - REQUEST GET /controller/api/controllerInfo on HttpChannelOverHttp@4a21faa{r=1,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/controllerInfo,age=38} 14:36:08.384 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.handler.ContextHandler - scope null||/controller/api/controllerInfo @ s.o.e.j.s.ServletContextHandler@433d61fb{/controller/api,null,AVAILABLE} 14:36:08.385 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.handler.ContextHandler - context=/controller/api||/controllerInfo @ s.o.e.j.s.ServletContextHandler@433d61fb{/controller/api,null,AVAILABLE} 14:36:08.387 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.servlet.ServletHandler - servlet /controller/api||/controllerInfo -> shaded.org.glassfish.jersey.servlet.ServletContainer-50de0926@45b718ee==shaded.org.glassfish.jersey.servlet.ServletContainer,jsp=null,order=-1,inst=true 14:36:08.387 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.servlet.ServletHandler - chain=null 14:36:09.454 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - sendResponse info=null content=HeapByteBuffer@71102d02[p=0,l=94,c=8192,r=94]={<<<{"data":{"fullNam...},"error":null}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} complete=true committing=true callback=Blocker@480fa4a8{null} 14:36:09.455 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - COMMIT for /controller/api/controllerInfo on HttpChannelOverHttp@4a21faa{r=1,c=true,a=DISPATCHED,uri=//localhost:40100/controller/api/controllerInfo,age=1109} 200 OK HTTP/1.1 Date: Tue, 06 Oct 2020 12:36:08 GMT Content-Length: 94 Content-Type: application/json;charset=utf8;version=1

14:36:09.464 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - shaded.org.eclipse.jetty.server.HttpConnection$SendCallback@3c52af5e[PROCESSING][i=HTTP/1.1{s=200,h=3,cl=94},cb=shaded.org.eclipse.jetty.server.HttpChannel$CommitCallback@1ae05fa7] generate: NEED_HEADER (null,[p=0,l=94,c=8192,r=94],true)@START 14:36:09.465 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.http.HttpGenerator - generateHeaders HTTP/1.1{s=200,h=3,cl=94} last=true content=HeapByteBuffer@71102d02[p=0,l=94,c=8192,r=94]={<<<{"data":{"fullNam...},"error":null}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} 14:36:09.466 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.http.HttpGenerator - Date: Tue, 06 Oct 2020 12:36:08 GMT Content-Length: 94 Content-Type: application/json;charset=utf8;version=1

14:36:09.467 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.http.HttpGenerator - CONTENT_LENGTH 14:36:09.467 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - shaded.org.eclipse.jetty.server.HttpConnection$SendCallback@3c52af5e[PROCESSING][i=HTTP/1.1{s=200,h=3,cl=94},cb=shaded.org.eclipse.jetty.server.HttpChannel$CommitCallback@1ae05fa7] generate: FLUSH ([p=0,l=162,c=8192,r=162],[p=0,l=94,c=8192,r=94],true)@COMPLETING 14:36:09.470 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.WriteFlusher - write: WriteFlusher@6caf4470{IDLE}->null [HeapByteBuffer@27fc1ae5[p=0,l=162,c=8192,r=162]={<<<HTTP/1.1 200 OK\r\n...z-SNAPSHOT)\r\n\r\n>>>ep-alive\r\n\r\n\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00},HeapByteBuffer@71102d02[p=0,l=94,c=8192,r=94]={<<<{"data":{"fullNam...},"error":null}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}] 14:36:09.471 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.WriteFlusher - update WriteFlusher@6caf4470{WRITING}->null:IDLE-->WRITING 14:36:09.472 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.ChannelEndPoint - flushed 256 SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=W,to=1171/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=END,0 of -1},g=HttpGenerator@bcecfc4{s=COMPLETING}]=>HttpChannelOverHttp@4a21faa{r=1,c=true,a=DISPATCHED,uri=//localhost:40100/controller/api/controllerInfo,age=1127} 14:36:09.472 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.WriteFlusher - Flushed=true written=256 remaining=0 WriteFlusher@6caf4470{WRITING}->null 14:36:09.472 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.WriteFlusher - update WriteFlusher@6caf4470{IDLE}->null:WRITING-->IDLE 14:36:09.472 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - shaded.org.eclipse.jetty.server.HttpConnection$SendCallback@3c52af5e[PROCESSING][i=HTTP/1.1{s=200,h=3,cl=94},cb=shaded.org.eclipse.jetty.server.HttpChannel$CommitCallback@1ae05fa7] generate: DONE ([p=162,l=162,c=8192,r=0],[p=94,l=94,c=8192,r=0],true)@END 14:36:09.478 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.Server - handled=true async=false committed=true on HttpChannelOverHttp@4a21faa{r=1,c=true,a=DISPATCHED,uri=//localhost:40100/controller/api/controllerInfo,age=1133} 14:36:09.478 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannelState - unhandle HttpChannelState@feb636{s=DISPATCHED a=NOT_ASYNC i=true r=IDLE w=false} 14:36:09.479 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=1,c=true,a=COMPLETING,uri=//localhost:40100/controller/api/controllerInfo,age=1134} action COMPLETE 14:36:09.479 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannelState - onComplete HttpChannelState@feb636{s=COMPLETING a=NOT_ASYNC i=false r=IDLE w=false} 14:36:09.479 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - COMPLETE for /controller/api/controllerInfo written=94 14:36:09.486 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannelState - recycle HttpChannelState@feb636{s=COMPLETED a=NOT_ASYNC i=false r=IDLE w=false} 14:36:09.487 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.http.HttpParser - reset HttpParser{s=END,0 of -1} 14:36:09.487 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.http.HttpParser - END --> START 14:36:09.487 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} handle exit, result COMPLETE 14:36:09.488 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.ChannelEndPoint - filled 0 SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=15/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.488 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.ChannelEndPoint - filled 0 SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=16/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.490 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=17/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} filled 0 HeapByteBuffer@27fc1ae5[p=0,l=0,c=8192,r=0]={<<<>>>HTTP/1.1 200 OK\r\n...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} 14:36:09.491 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=18/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} parse HeapByteBuffer@27fc1ae5[p=0,l=0,c=8192,r=0]={<<<>>>HTTP/1.1 200 OK\r\n...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} {} 14:36:09.493 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.http.HttpParser - parseNext s=START HeapByteBuffer@27fc1ae5[p=0,l=0,c=8192,r=0]={<<<>>>HTTP/1.1 200 OK\r\n...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} 14:36:09.494 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=22/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} parsed false HttpParser{s=START,0 of -1} 14:36:09.499 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - releaseRequestBuffer HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=23/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.500 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.AbstractConnection - fillInterested HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=28/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.501 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.FillInterest - interested FillInterest@3aa2e7de{AC.ReadCB@5bbd5c07{HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=0/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0}}} 14:36:09.501 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.ChannelEndPoint - changeInterests p=false 0->1 for SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=1/30000}{io=0/1,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.501 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - Queued change shaded.org.eclipse.jetty.io.ChannelEndPoint$1@35aceded on ManagedSelector@6b5966e1{STARTED} id=1 keys=1 selected=0 updates=0 14:36:09.502 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - Wakeup on submit ManagedSelector@6b5966e1{STARTED} id=1 keys=1 selected=0 updates=1 14:36:09.503 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.EPollSelectorImpl@4c60cb5e woken with none selected 14:36:09.503 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.EPollSelectorImpl@4c60cb5e woken up from select, 0/0/1 selected 14:36:09.503 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.EPollSelectorImpl@4c60cb5e processing 0 keys, 1 updates 14:36:09.503 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=3/30000}{io=0/1,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} onFillable exit HttpChannelState@feb636{s=IDLE a=NOT_ASYNC i=true r=IDLE w=false} null 14:36:09.503 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - updateable 1 14:36:09.503 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - update shaded.org.eclipse.jetty.io.ChannelEndPoint$1@35aceded 14:36:09.504 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ChannelEndPoint - Key interests updated 0 -> 1 on SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=3/30000}{io=1/1,kio=1,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.504 [qtp1316864772-16] DEBUG shaded.org.eclipse.jetty.util.thread.QueuedThreadPool - ran CEP:SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=4/30000}{io=1/1,kio=1,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0}:runFillable:BLOCKING 14:36:09.504 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - updates 0 14:36:09.504 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.EPollSelectorImpl@4c60cb5e waiting with 1 keys 14:36:09.816 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.EPollSelectorImpl@4c60cb5e woken up from select, 1/1/1 selected 14:36:09.816 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.EPollSelectorImpl@4c60cb5e processing 1 keys, 0 updates 14:36:09.817 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - selected 1 sun.nio.ch.SelectionKeyImpl@4698a02e SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=316/30000}{io=1/1,kio=1,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.817 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ChannelEndPoint - onSelected 1->0 r=true w=false for SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=317/30000}{io=1/0,kio=1,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.817 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ChannelEndPoint - task CEP:SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=317/30000}{io=1/0,kio=1,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0}:runFillable:BLOCKING 14:36:09.818 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.util.thread.ReservedThreadExecutor - ReservedThreadExecutor@418e7838{s=1/4,p=0} tryExecute EatWhatYouKill@1e5f4170/SelectorProducer@6c345c5f/PRODUCING/p=false/QueuedThreadPool[qtp1316864772]@4e7dc304{STARTED,8<=8<=200,i=4,q=0}[ReservedThreadExecutor@418e7838{s=1/4,p=0}][pc=0,pic=0,pec=1,epc=0]@2020-10-06T14:36:09.818+02:00 14:36:09.818 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.util.thread.ReservedThreadExecutor - ReservedThreadExecutor@418e7838{s=0/4,p=0}@3253503c offer EatWhatYouKill@1e5f4170/SelectorProducer@6c345c5f/PRODUCING/p=false/QueuedThreadPool[qtp1316864772]@4e7dc304{STARTED,8<=8<=200,i=4,q=0}[ReservedThreadExecutor@418e7838{s=0/4,p=0}][pc=0,pic=0,pec=1,epc=0]@2020-10-06T14:36:09.818+02:00 14:36:09.818 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.util.thread.ReservedThreadExecutor - ReservedThreadExecutor@418e7838{s=0/4,p=1} startReservedThread p=1 14:36:09.819 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.util.thread.QueuedThreadPool - queue ReservedThreadExecutor@418e7838{s=0/4,p=1}@31c91f88 14:36:09.819 [qtp1316864772-17] DEBUG shaded.org.eclipse.jetty.util.thread.QueuedThreadPool - run ReservedThreadExecutor@418e7838{s=0/4,p=1}@31c91f88 14:36:09.819 [qtp1316864772-17] DEBUG shaded.org.eclipse.jetty.util.thread.ReservedThreadExecutor - ReservedThreadExecutor@418e7838{s=1/4,p=1}@31c91f88 started 14:36:09.819 [qtp1316864772-17] DEBUG shaded.org.eclipse.jetty.util.thread.ReservedThreadExecutor - ReservedThreadExecutor@418e7838{s=1/4,p=0}@31c91f88 waiting 14:36:09.819 [qtp1316864772-15] DEBUG shaded.org.eclipse.jetty.util.thread.ReservedThreadExecutor - ReservedThreadExecutor@418e7838{s=0/4,p=1}@3253503c task=EatWhatYouKill@1e5f4170/SelectorProducer@6c345c5f/IDLE/p=true/QueuedThreadPool[qtp1316864772]@4e7dc304{STARTED,8<=8<=200,i=3,q=0}[ReservedThreadExecutor@418e7838{s=1/4,p=0}][pc=0,pic=0,pec=1,epc=0]@2020-10-06T14:36:09.819+02:00 14:36:09.820 [qtp1316864772-15] DEBUG shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill - EatWhatYouKill@1e5f4170/SelectorProducer@6c345c5f/IDLE/p=true/QueuedThreadPool[qtp1316864772]@4e7dc304{STARTED,8<=8<=200,i=3,q=0}[ReservedThreadExecutor@418e7838{s=1/4,p=0}][pc=0,pic=0,pec=1,epc=0]@2020-10-06T14:36:09.82+02:00 tryProduce true 14:36:09.820 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill - EatWhatYouKill@1e5f4170/SelectorProducer@6c345c5f/IDLE/p=true/QueuedThreadPool[qtp1316864772]@4e7dc304{STARTED,8<=8<=200,i=3,q=0}[ReservedThreadExecutor@418e7838{s=0/4,p=1}][pc=0,pic=0,pec=1,epc=0]@2020-10-06T14:36:09.819+02:00 m=EXECUTE_PRODUCE_CONSUME t=CEP:SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=319/30000}{io=1/0,kio=1,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0}:runFillable:BLOCKING/BLOCKING 14:36:09.820 [qtp1316864772-15] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - updateable 0 14:36:09.820 [qtp1316864772-15] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - updates 0 14:36:09.821 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.FillInterest - fillable FillInterest@3aa2e7de{AC.ReadCB@5bbd5c07{HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=FI,flush=-,to=320/30000}{io=0/0,kio=1,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0}}} 14:36:09.822 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=322/30000}{io=0/0,kio=1,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} onFillable enter HttpChannelState@feb636{s=IDLE a=NOT_ASYNC i=true r=IDLE w=false} null 14:36:09.823 [qtp1316864772-15] DEBUG shaded.org.eclipse.jetty.io.ChannelEndPoint - Key interests updated 1 -> 0 on SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=323/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.824 [qtp1316864772-15] DEBUG shaded.org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.EPollSelectorImpl@4c60cb5e waiting with 1 keys 14:36:09.825 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.io.ChannelEndPoint - filled 345 SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=324/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} 14:36:09.825 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=0/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} filled 345 HeapByteBuffer@27fc1ae5[p=0,l=345,c=8192,r=345]={<<<PUT /controller/a...tionInfo":true}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} 14:36:09.826 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=START,0 of -1},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=1,c=false,a=IDLE,uri=null,age=0} parse HeapByteBuffer@27fc1ae5[p=0,l=345,c=8192,r=345]={<<<PUT /controller/a...tionInfo":true}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} {} 14:36:09.826 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - parseNext s=START HeapByteBuffer@27fc1ae5[p=0,l=345,c=8192,r=345]={<<<PUT /controller/a...tionInfo":true}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} 14:36:09.826 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - START --> SPACE1 14:36:09.828 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - SPACE1 --> URI 14:36:09.829 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - URI --> SPACE2 14:36:09.829 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - SPACE2 --> REQUEST_VERSION 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - REQUEST_VERSION --> HEADER 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Content-Type: application/json --> IN_VALUE 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Content-Type: application/json --> FIELD 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:User-Agent: Jersey/2.29.1 (HttpUrlConnection 11.0.8) --> IN_VALUE 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:User-Agent: Jersey/2.29.1 (HttpUrlConnection 11.0.8) --> FIELD 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Host: localhost:40100 --> IN_VALUE 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Host: localhost:40100 --> FIELD 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Accept --> VALUE 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Accept --> IN_VALUE 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Accept --> FIELD 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Connection: keep-alive --> IN_VALUE 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Connection: keep-alive --> FIELD 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Content-Length --> VALUE 14:36:09.830 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Content-Length --> IN_VALUE 14:36:09.831 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER:Content-Length --> FIELD 14:36:09.831 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - HEADER --> CONTENT 14:36:09.831 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - REQUEST for //localhost:40100/controller/api/runSUT on HttpChannelOverHttp@4a21faa{r=2,c=false,a=IDLE,uri=//localhost:40100/controller/api/runSUT,age=0} PUT //localhost:40100/controller/api/runSUT HTTP/1.1 Content-Type: application/json User-Agent: Jersey/2.29.1 (HttpUrlConnection 11.0.8) Host: localhost:40100 Accept: text/html, image/gif, image/jpeg, ; q=.2, /*; q=.2 Connection: keep-alive Content-Length: 91

14:36:09.843 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=6/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=CONTENT,0 of 91},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=2,c=false,a=IDLE,uri=//localhost:40100/controller/api/runSUT,age=0} parsed true HttpParser{s=CONTENT,0 of 91} 14:36:09.844 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=2,c=false,a=IDLE,uri=//localhost:40100/controller/api/runSUT,age=12} handle //localhost:40100/controller/api/runSUT 14:36:09.844 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpChannelState - handling HttpChannelState@feb636{s=IDLE a=NOT_ASYNC i=true r=IDLE w=false} 14:36:09.844 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=2,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/runSUT,age=13} action DISPATCH 14:36:09.844 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.Server - REQUEST PUT /controller/api/runSUT on HttpChannelOverHttp@4a21faa{r=2,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/runSUT,age=13} 14:36:09.844 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.handler.ContextHandler - scope null||/controller/api/runSUT @ s.o.e.j.s.ServletContextHandler@433d61fb{/controller/api,null,AVAILABLE} 14:36:09.844 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.handler.ContextHandler - context=/controller/api||/runSUT @ s.o.e.j.s.ServletContextHandler@433d61fb{/controller/api,null,AVAILABLE} 14:36:09.844 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.servlet.ServletHandler - servlet /controller/api||/runSUT -> shaded.org.glassfish.jersey.servlet.ServletContainer-50de0926@45b718ee==shaded.org.glassfish.jersey.servlet.ServletContainer,jsp=null,order=-1,inst=true 14:36:09.844 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.servlet.ServletHandler - chain=null 14:36:09.943 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=118/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=CONTENT,0 of 91},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=2,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/runSUT,age=112} parse HeapByteBuffer@27fc1ae5[p=254,l=345,c=8192,r=91]={PUT /controller/a...-Length: 91\r\n\r\n<<<{"run":true,"rese...tionInfo":true}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} {} 14:36:09.944 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - parseNext s=CONTENT HeapByteBuffer@27fc1ae5[p=254,l=345,c=8192,r=91]={PUT /controller/a...-Length: 91\r\n\r\n<<<{"run":true,"rese...tionInfo":true}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} 14:36:09.944 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=2,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/runSUT,age=113} onContent Content@792a428f{HeapByteBufferR@69c26515[p=254,l=345,c=8192,r=91]={PUT /controller/a...-Length: 91\r\n\r\n<<<{"run":true,"rese...tionInfo":true}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}} 14:36:09.945 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpInput - HttpInputOverHTTP@2b127172[c=0,q=0,[0]=null,s=STREAM] addContent Content@792a428f{HeapByteBufferR@69c26515[p=254,l=345,c=8192,r=91]={PUT /controller/a...-Length: 91\r\n\r\n<<<{"run":true,"rese...tionInfo":true}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}} 14:36:09.945 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.http.HttpParser - CONTENT --> END 14:36:09.945 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=2,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/runSUT,age=114} onContentComplete 14:36:09.945 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpChannel - HttpChannelOverHttp@4a21faa{r=2,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/runSUT,age=114} onRequestComplete 14:36:09.945 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpInput - HttpInputOverHTTP@2b127172[c=0,q=1,[0]=EOF,s=STREAM] addContent EOF 14:36:09.946 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=120/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=END,91 of 91},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=2,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/runSUT,age=115} parsed false HttpParser{s=END,91 of 91} 14:36:09.961 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpInput - HttpInputOverHTTP@2b127172[c=91,q=1,[0]=EOF,s=STREAM] read 91 from Content@792a428f{HeapByteBufferR@69c26515[p=345,l=345,c=8192,r=0]={PUT /controller/a...tionInfo":true}<<<>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}} 14:36:09.962 [qtp1316864772-12] DEBUG shaded.org.eclipse.jetty.server.HttpConnection - releaseRequestBuffer HttpConnection@5bbd5c07::SocketChannelEndPoint@6c2d93dd{/127.0.0.1:37156<->/127.0.0.1:40100,OPEN,fill=-,flush=-,to=137/30000}{io=0/0,kio=0,kro=1}->HttpConnection@5bbd5c07[p=HttpParser{s=END,91 of 91},g=HttpGenerator@bcecfc4{s=START}]=>HttpChannelOverHttp@4a21faa{r=2,c=false,a=DISPATCHED,uri=//localhost:40100/controller/api/runSUT,age=131}

. _ _ /\ / '_ () \ \ \ \ ( ( )\ | ' | '| | ' \/ ` | \ \ \ \ \/ _)| |)| | | | | || (| | ) ) ) ) ' |__| .|| ||| |\, | / / / / =========|_|==============|__/=//// :: Spring Boot :: (v2.3.2.RELEASE)

2020-10-06 14:36:11.977 INFO 327406 --- [tp1316864772-12] o.s.boot.SpringApplication : Starting application on MAILUFTERL with PID 327406 (started by martin in /home/martin/projects/evomastertest) 2020-10-06 14:36:11.987 INFO 327406 --- [tp1316864772-12] o.s.boot.SpringApplication : No active profile set, falling back to default profiles: default 2020-10-06 14:36:14.773 INFO 327406 --- [tp1316864772-12] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2020-10-06 14:36:14.797 INFO 327406 --- [tp1316864772-12] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2020-10-06 14:36:14.798 INFO 327406 --- [tp1316864772-12] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.37] 2020-10-06 14:36:15.168 INFO 327406 --- [tp1316864772-12] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2020-10-06 14:36:15.169 INFO 327406 --- [tp1316864772-12] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2908 ms 2020-10-06 14:36:16.059 INFO 327406 --- [tp1316864772-12] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2020-10-06 14:36:16.603 INFO 327406 --- [tp1316864772-12] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2020-10-06 14:36:16.618 INFO 327406 --- [tp1316864772-12] o.s.boot.SpringApplication : Started application in 6.026 seconds (JVM running for 68.53) 2020-10-06 14:36:16.919 INFO 327406 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2020-10-06 14:36:16.919 INFO 327406 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2020-10-06 14:36:16.930 INFO 327406 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 10 ms `

mado89 commented 4 years ago

I assume this is due to some missing command annotation for spring docs. The endpoint works when I run gradle bootRun

arcuri82 commented 4 years ago

are you using and configuring SpringFox or SpringDoc to generate the OpenAPI schema?

arcuri82 commented 4 years ago

https://github.com/EMResearch/EvoMaster/blob/master/docs/openapi.md

mado89 commented 4 years ago

SpringDoc (https://github.com/springdoc/springdoc-openapi). I did not configure something but just added the library to my gradle file

mado89 commented 4 years ago

Also I am starting the driver from eclipse. Do I need to somehow add SpringDoc as a reference/library there?

arcuri82 commented 4 years ago

adding it to Gradle should be enough

mado89 commented 4 years ago

For reference, this is my gradle file:

plugins {
    id 'org.springframework.boot' version '2.3.2.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
targetCompatibility = '1.8'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'

    compileOnly 'org.projectlombok:lombok'

    annotationProcessor 'org.projectlombok:lombok'

    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }

    implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.4.8'

    testCompile('org.evomaster:evomaster-client-java-controller:1.0.1')
}

test {
    useJUnitPlatform()
}
arcuri82 commented 4 years ago

are you using any custom context-path?

mado89 commented 4 years ago

No. When I start the application it is available under http://localhost:8080/v3/api-docs. The ProblemInfo method:

@Override
public ProblemInfo getProblemInfo() {
    return new RestProblem("http://localhost:8080/v3/api-docs", null);
}

The start method:

@Override
public String startSut() {
    ctx = SpringApplication.run(DemoApplication.class, new String[] { });
    return "http://localhost:8080";
}
arcuri82 commented 4 years ago

When I start the application it is available under http://localhost:8080/v3/api-docs.

Do you mean that, once the driver is up and running and did at least one run, then typing http://localhost:8080/v3/api-docs in browser (for example) actually gives you the schema? but during the search EM gives a 404?

mado89 commented 4 years ago

Sorry. No I meant when I run the application (not the test driver) manually then it gives me the schema but not when I run the test driver. However, when I run the test driver I can see the other endpoints. Sorry for the confusion!

arcuri82 commented 4 years ago

that's very weird... but it looks more like an issue with SpringDoc, or something in your project that is misconfigured somehow

mado89 commented 4 years ago

Thats my impression as well. But for me it seems to be in connection with evomaster. Maybe we can arrange a quick screenshare so that we can check together? (I know a lot to ask ...) Or is there some guess on your side in which direction I should investigate for the misconfiguration?

arcuri82 commented 4 years ago

if you do not manage to get SpringDoc work, you can try SpringFox, or provide the schema manually

mado89 commented 4 years ago

Same behaviour with SpringFox. The "application" is located at https://github.com/mado89/EvoMasterTest please take a look if you can spot the problem.

arcuri82 commented 4 years ago

I cloned it, and, with SpringDoc (commented out SpringFox), I did not have any issue using EvoMaster on it... (started the TestEvoMaster in IntelliJ)

mado89 commented 4 years ago

Ok then this is some weird IDE (eclipse) issue in connection with EvoMaster or undocumented behaviour of springdoc. I tried running it from the commandline with the same result. Maybe you could provide a sample gradle task for running a test driver? This would also improve the tools integration into fully automated CI processes.

mado89 commented 4 years ago

Finally! I found a work around and was able to run a whitebox test

arcuri82 commented 3 years ago

closed as JOSS paper has been accepted