forked from deephaven/deephaven-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
125 lines (101 loc) · 4.87 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
plugins {
id 'java-library'
id 'io.deephaven.project.register'
id 'me.champeau.jmh' version '0.7.2'
}
description 'Engine Table: Implementation and closely-coupled utilities'
configurations {
// Ensure jmh picks up the same dependencies as tests
jmhImplementation.extendsFrom testImplementation
jmhRuntimeOnly.extendsFrom testRuntimeOnly
}
dependencies {
api project(':Util')
api project(':TableLogger')
api project(':engine-stringset')
api project(':engine-base')
api project(':engine-context')
api project(':deephaven-jpy-ext')
api project(':hotspot')
api project(':IO')
implementation project(':DHProcess')
implementation project(':engine-function')
implementation project(':engine-tuple')
implementation project(':Configuration')
implementation project(':log-factory')
implementation project(':Stats')
implementation 'com.github.f4b6a3:uuid-creator:5.2.0'
// TODO(deephaven-core#3204): t-digest 3.3 appears to have higher errors than 3.2
implementation 'com.tdunning:t-digest:3.2'
implementation 'com.squareup:javapoet:1.13.0'
implementation 'io.github.classgraph:classgraph:4.8.165'
implementation 'it.unimi.dsi:fastutil:8.5.13'
implementation project(':plugin')
implementation depCommonsLang3
Classpaths.inheritCommonsText(project, 'implementation')
Classpaths.inheritGroovy(project, 'groovy', 'implementation')
Classpaths.inheritGroovy(project, 'groovy-json', 'implementation')
Classpaths.inheritJavaParser(project, 'implementation')
Classpaths.inheritAutoService(project)
Classpaths.inheritImmutables(project)
compileOnly 'com.google.code.findbugs:jsr305:3.0.2'
runtimeOnly project(':engine-tuplesource')
Classpaths.inheritGuava(project)
testImplementation TestTools.projectDependency(project, 'Util')
testImplementation TestTools.projectDependency(project, 'engine-chunk')
testImplementation TestTools.projectDependency(project, 'engine-vector')
testImplementation TestTools.projectDependency(project, 'Numerics')
testImplementation TestTools.projectDependency(project, 'engine-context')
testImplementation TestTools.projectDependency(project, 'engine-time')
testImplementation project(':base-test-utils')
testImplementation project(':engine-rowset-test-utils')
testImplementation project(':engine-test-utils')
testImplementation project(':Base')
testImplementation project(':BenchmarkSupport')
testImplementation project(':extensions-csv')
testImplementation project(':extensions-parquet-table')
testImplementation project(':extensions-parquet-base')
testImplementation project(':extensions-source-support')
testImplementation project(':Numerics')
testImplementation project(':extensions-suanshu')
Classpaths.inheritJUnitClassic(project, 'testImplementation')
Classpaths.inheritJUnitPlatform(project)
Classpaths.inheritAssertJ(project)
testRuntimeOnly project(':log-to-slf4j'),
project(path: ':configs'),
project(path: ':test-configs')
Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly')
}
spotless {
java {
// Exclude these codegen sample files from here so we don't even need a comment to disable formatting
targetExclude 'src/test/java/io/deephaven/engine/table/impl/select/FilterKernel*Sample.java',
'src/test/java/io/deephaven/engine/table/impl/select/Formula*Sample.java'
}
}
test {
// For now, if you apply @Category(ParallelTest.class) to tests which are not huge CPU/RAM hogs, you can get parallelism
// If you have CPU/RAM-heavy tasks that you don't want gumming up :engine-table:test runs, apply @Category(SerialTest.class) instead
// (note that the above only works for junit 4 tests; see the documentation on SerialTest class and others for porting instructions)
def props = project.properties.subMap(["jpy.pythonLib", "jpy.jpyLib", "jpy.jdlLib"])
systemProperties props
systemProperty 'ModelFileGenerator.testSource', layout.projectDirectory.dir('src/test/java/').toString()
}
// Adds a custom testParallel task which is allowed to run tests in parallel.
// Add @Category(ParallelTest.class) to have your tests run in parallel
// Note: Supports JUnit4 or greater only (you use @Test annotations to mark test methods).
TestTools.addEngineParallelTest(project)
TestTools.addEngineSerialTest(project)
TestTools.addEngineOutOfBandTest(project)
// If changing, be sure to update .github/scripts/print-gradle-workers-max.sh
def maxHeapSize = findProperty('maxHeapSize') as String ?: '6g'
tasks.testParallel.maxHeapSize = maxHeapSize
tasks.testSerial.maxHeapSize = maxHeapSize
tasks.testOutOfBand.maxHeapSize = maxHeapSize
tasks.test.maxHeapSize = maxHeapSize
jmh {
jmhVersion = '1.35'
}
// No need to assemble the jar by default on build
// assemble.dependsOn(jmhJar)
check.dependsOn(jmhClasses)