Projects STRLCPY criu Files
🤬
..
src/org/criu/java/tests Loading last commit info...
README.md
pom.xml
test.xml
README.md

JavaTests

Java Functional tests checks the Java File based APIs and Memory mapping APIs by placing the process in various states before checkpointing and validates if these resources are still accessible after restore. It also validates if the file contents are in expected states.

Tests are to be run by a user having following capabilities:
CAP_DAC_OVERRIDE
CAP_CHOWN
CAP_SETPCAP
CAP_SETGID
CAP_AUDIT_CONTROL
CAP_DAC_READ_SEARCH
CAP_NET_ADMIN
CAP_SYS_ADMIN
CAP_SYS_CHROOT
CAP_SYS_PTRACE
CAP_FOWNER
CAP_KILL
CAP_FSETID
CAP_SYS_RESOURCE
CAP_SETUID

File-based Java APIs

Here we test the File-Based Java APIs by checkpointing the application in the following scenarios and verifying the contents of the file after restore:

  • Reading and writing in the same file. (FileRead.java)
  • Read from a file and write its content to another file. (ReadWrite.java)
  • Reading from multiple files and writing their content to another file. (MultipleFileRead)
  • Reading from a file and writing its content to multiple files. (MultipleFileWrite)

Memory mapping Java APIs

Here we test the Memory Mapping APIs by checkpointing the application in following scenario and verifying the contents after restore:

  • Memory-mapping a file and writing its content to another file. (MemoryMappings.java)

Socket-based Java APIs

Here we test the Socket-based API's by checkpointing the application in the following scenario and verifying the state after restore:

  • Checkpointing the server process in the middle of data transfer. (Sockets.java)
  • Checkpointing the server process after it has bound to a port but is not listening for client connections. (SocketListen.java)
  • Checkpointing the server process while it is listening for client connections, and no client has connected yet. (SocketConnect.java)
  • Checkpointing the server process when it has multiple clients in multiple states connected to it. (SocketMultiple.java)
  • Checkpointing the client process in the middle of data transfer. (SocketsData.java)

Prerequisites for running the tests:

  • Maven

To run the tests:

  • In the javaTests folder run the command sudo mvn test
  • To keep the img files and logs from previous failures, between different runs of the test, use the -DneverCleanFailures=true option in the maven command as sudo mvn -DneverCleanFailures=true test
Please wait...
Page is in error, reload to recover