• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

cossacklabs / themis / #7630
88%
master: 83%

Build:
Build:
LAST BUILD BRANCH: release/0.15.0
DEFAULT BRANCH: master
Ran 14 May 2020 05:22AM UTC
Jobs 1
Files 73
Run time 6s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

13 May 2020 10:54AM UTC coverage: 87.707%. Remained the same
#7630

push

travis-ci

web-flow
Test Kotlin API (#637)

* Configure Kotlin for testing

We are going to write Kotlin in JavaThemis to avoid adding new run-time
dependencies. Kotlin has great interop with Java due to this JVM thingie.
However, it will be nice to test our Java code with Kotlin to ensure that
our API works as intended.

Use the current latest stable version of Kotlin, configuruable via the
"kotlin_version" variable defined in the root project. There we also add
Maven Central repos where Kotlin pluggin and runtime are hosted.

Each subproject has Kotlin configured for it, even BoringSSL that does
not have any Kotlin code, but must have relevant targets as a
dependency. Note that desktop Java and Android use different plugin
because Kotlin compiles a little bit different on Android.

Kotlin runtime is required to run Kotlin code. Since we use Kotlin only
for tests, the runtime is added as test dependency. We build our code
for Java 1.7 so an appropriate runtime flavor is used.

Adding Kotlin also triggers a weird compilation error in Android's DEX
compiler as Kotlin runtime uses a lot of JetBrains annotations. This is
a known issue encountered by some project, and there is a workaround.

* Kotlin API tests

Add test suite written in Kotlin. This code has been automatically
converted by IntelliJ from Java test suite and cleaned up manually
after that.

One painful point is exception testing, the try-catch idiom from Java
looks really awful in Kotlin so I've simply polyfilled assertThrows()
method which is not available with Java 1.7. Kotlin can translate its
lambdas into Runnables so it works pretty well.

* Changelog entries

Note that Java 8 support is now required since Kotlin compiler needs it.

3767 of 4295 relevant lines covered (87.71%)

19340.88 hits per line

Jobs
ID Job ID Ran Files Coverage
1 #7630.1 14 May 2020 05:22AM UTC 0
87.71
Source Files on build #7630
Detailed source file information is not available for this build.
  • Back to Repo
  • eac37214 on github
  • Prev Build on HEAD
  • Next Build on HEAD
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc