Skip to content

Commit 96b658d

Browse files
committed
WIP: collect and assert which links are really missing in kotlinx projects
1 parent f2314c2 commit 96b658d

File tree

5 files changed

+483
-9
lines changed

5 files changed

+483
-9
lines changed

dokka-integration-tests/gradle/src/testExternalProjectKotlinxCoroutines/kotlin/CoroutinesGradleIntegrationTest.kt

Lines changed: 165 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,174 @@ class CoroutinesGradleIntegrationTest : AbstractGradleIntegrationTest(), TestOut
6666
projectOutputLocation.allHtmlFiles().forEach { file ->
6767
assertContainsNoErrorClass(file)
6868
assertNoUnresolvedLinks(file)
69-
// assertNoHrefToMissingLocalFileOrDirectory(file)
7069
assertNoEmptyLinks(file)
7170
assertNoEmptySpans(file)
7271
assertNoUnsubstitutedTemplatesInHtml(file)
7372
}
73+
74+
assertHrefMissing(
75+
projectOutputLocation,
76+
mapOf(
77+
"kotlinx-coroutines-rx3/kotlinx.coroutines.rx3/index.html" to setOf(
78+
"../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
79+
),
80+
"kotlinx-coroutines-rx3/kotlinx.coroutines.rx3/-scheduler-coroutine-dispatcher/index.html" to setOf(
81+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
82+
),
83+
"kotlinx-coroutines-rx2/kotlinx.coroutines.rx2/index.html" to setOf(
84+
"../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
85+
),
86+
"kotlinx-coroutines-rx2/kotlinx.coroutines.rx2/-scheduler-coroutine-dispatcher/index.html" to setOf(
87+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
88+
),
89+
"kotlinx-coroutines-swing/kotlinx.coroutines.swing/index.html" to setOf(
90+
"../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
91+
),
92+
"kotlinx-coroutines-swing/kotlinx.coroutines.swing/-swing-dispatcher/index.html" to setOf(
93+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
94+
),
95+
"kotlinx-coroutines-guava/kotlinx.coroutines.guava/as-listenable-future.html" to setOf(
96+
"../../kotlinx-coroutines-guava/kotlinx.coroutines.guava/-job-listenable-future/cancel.html" to "kotlinx-coroutines-guava/kotlinx.coroutines.guava/-job-listenable-future/cancel.html",
97+
),
98+
"kotlinx-coroutines-slf4j/kotlinx.coroutines.slf4j/-m-d-c-context/index.html" to setOf(
99+
"../../../kotlinx-coroutines-slf4j/kotlinx.coroutines.slf4j/-m-d-c-context/--root--.html" to "kotlinx-coroutines-slf4j/kotlinx.coroutines.slf4j/-m-d-c-context/--root--.html",
100+
),
101+
"kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit5/index.html" to setOf(
102+
"../../kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit5/-coroutines-timeout-extension/index.html" to "kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit5/-coroutines-timeout-extension/index.html",
103+
),
104+
"kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit5/-coroutines-timeout/index.html" to setOf(
105+
"../../../kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit5/-coroutines-timeout-extension/index.html" to "kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit5/-coroutines-timeout-extension/index.html",
106+
),
107+
"kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit4/-coroutines-timeout/index.html" to setOf(
108+
"../../../kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit4/-coroutines-timeout/cancel-on-timeout.html" to "kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit4/-coroutines-timeout/cancel-on-timeout.html",
109+
"../../../kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit4/-coroutines-timeout/enable-coroutine-creation-stack-traces.html" to "kotlinx-coroutines-debug/kotlinx.coroutines.debug.junit4/-coroutines-timeout/enable-coroutine-creation-stack-traces.html",
110+
),
111+
"kotlinx-coroutines-javafx/kotlinx.coroutines.javafx/index.html" to setOf(
112+
"../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
113+
),
114+
"kotlinx-coroutines-javafx/kotlinx.coroutines.javafx/-java-fx-dispatcher/index.html" to setOf(
115+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
116+
),
117+
"kotlinx-coroutines-reactor/kotlinx.coroutines.reactor/index.html" to setOf(
118+
"../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
119+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html",
120+
),
121+
"kotlinx-coroutines-reactor/kotlinx.coroutines.reactor/flux.html" to setOf(
122+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html",
123+
),
124+
"kotlinx-coroutines-reactor/kotlinx.coroutines.reactor/-scheduler-coroutine-dispatcher/index.html" to setOf(
125+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
126+
),
127+
"kotlinx-coroutines-jdk9/kotlinx.coroutines.jdk9/flow-publish.html" to setOf(
128+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html",
129+
),
130+
"kotlinx-coroutines-reactive/kotlinx.coroutines.reactive/publish.html" to setOf(
131+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html",
132+
),
133+
"kotlinx-coroutines-android/kotlinx.coroutines.android/index.html" to setOf(
134+
"../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
135+
),
136+
"kotlinx-coroutines-android/kotlinx.coroutines.android/-handler-dispatcher/index.html" to setOf(
137+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
138+
),
139+
"kotlinx-coroutines-test/kotlinx.coroutines.test/index.html" to setOf(
140+
"../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
141+
"../../kotlinx-coroutines-core/kotlinx.coroutines/-delay-with-timeout-diagnostics/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay-with-timeout-diagnostics/index.html",
142+
),
143+
"kotlinx-coroutines-test/kotlinx.coroutines.test/-test-dispatcher/index.html" to setOf(
144+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay/index.html",
145+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-delay-with-timeout-diagnostics/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-delay-with-timeout-diagnostics/index.html",
146+
),
147+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/-factory/-c-o-n-f-l-a-t-e-d.html" to setOf(
148+
"../../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/send.html",
149+
"../../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/try-send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/try-send.html",
150+
),
151+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/-factory/-r-e-n-d-e-z-v-o-u-s.html" to setOf(
152+
"../../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/send.html",
153+
"../../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/receive.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/receive.html",
154+
),
155+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/consume-each.html" to setOf(
156+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/index.html",
157+
),
158+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/index.html" to setOf(
159+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/index.html",
160+
),
161+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/-actor-scope/index.html" to setOf(
162+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-actor-scope/receive.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-actor-scope/receive.html",
163+
),
164+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/-actor-scope/channel.html" to setOf(
165+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-actor-scope/receive.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-actor-scope/receive.html",
166+
),
167+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/index.html" to setOf(
168+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html",
169+
),
170+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/channel.html" to setOf(
171+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-producer-scope/send.html",
172+
),
173+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel-result/index.html" to setOf(
174+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/try-send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/try-send.html",
175+
),
176+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/try-send-blocking.html" to setOf(
177+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/send.html",
178+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel-result/-companion/failed.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel-result/-companion/failed.html",
179+
),
180+
"kotlinx-coroutines-core/kotlinx.coroutines.channels/consume.html" to setOf(
181+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/index.html",
182+
),
183+
"kotlinx-coroutines-core/kotlinx.coroutines.flow/index.html" to setOf(
184+
"../../kotlinx-coroutines-core/kotlinx.coroutines.flow/-cancellable-flow/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.flow/-cancellable-flow/index.html",
185+
),
186+
"kotlinx-coroutines-core/kotlinx.coroutines.flow/-state-flow/index.html" to setOf(
187+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-conflated-broadcast-channel/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-conflated-broadcast-channel/index.html",
188+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-conflated-broadcast-channel/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-conflated-broadcast-channel/send.html",
189+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-conflated-broadcast-channel/try-send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-conflated-broadcast-channel/try-send.html",
190+
),
191+
"kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-shared-flow/index.html" to setOf(
192+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-shared-flow/replay-cache.html" to "kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-shared-flow/replay-cache.html",
193+
),
194+
"kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-shared-flow/reset-replay-cache.html" to setOf(
195+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-shared-flow/replay-cache.html" to "kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-shared-flow/replay-cache.html",
196+
),
197+
"kotlinx-coroutines-core/kotlinx.coroutines.flow/receive-as-flow.html" to setOf(
198+
"../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/receive.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/receive.html",
199+
),
200+
"kotlinx-coroutines-core/kotlinx.coroutines.flow/-shared-flow/index.html" to setOf(
201+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/index.html",
202+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/send.html",
203+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/try-send.html" to "kotlinx-coroutines-core/kotlinx.coroutines.channels/-broadcast-channel/try-send.html",
204+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-state-flow/emit.html" to "kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-state-flow/emit.html",
205+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-state-flow/try-emit.html" to "kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-state-flow/try-emit.html",
206+
),
207+
"kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-state-flow/index.html" to setOf(
208+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-state-flow/emit.html" to "kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-state-flow/emit.html",
209+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-state-flow/try-emit.html" to "kotlinx-coroutines-core/kotlinx.coroutines.flow/-mutable-state-flow/try-emit.html",
210+
),
211+
"kotlinx-coroutines-core/kotlinx.coroutines.flow/-abstract-flow/index.html" to setOf(
212+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.flow/-cancellable-flow/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.flow/-cancellable-flow/index.html",
213+
),
214+
"kotlinx-coroutines-core/kotlinx.coroutines/-completion-handler/index.html" to setOf(
215+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-completion-handler-exception/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-completion-handler-exception/index.html",
216+
),
217+
"kotlinx-coroutines-core/kotlinx.coroutines/-copyable-thread-context-element/index.html" to setOf(
218+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-copyable-thread-context-element/restore-thread-context.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-copyable-thread-context-element/restore-thread-context.html",
219+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-copyable-thread-context-element/update-thread-context.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-copyable-thread-context-element/update-thread-context.html",
220+
),
221+
"kotlinx-coroutines-core/kotlinx.coroutines/-job/invoke-on-completion.html" to setOf(
222+
"../../../kotlinx-coroutines-core/kotlinx.coroutines/-completion-handler-exception/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines/-completion-handler-exception/index.html",
223+
),
224+
"kotlinx-coroutines-core/kotlinx.coroutines.selects/index.html" to setOf(
225+
"../../kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause/index.html",
226+
),
227+
"kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause1/index.html" to setOf(
228+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause/index.html",
229+
),
230+
"kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause0/index.html" to setOf(
231+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause/index.html",
232+
),
233+
"kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause2/index.html" to setOf(
234+
"../../../kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause/index.html" to "kotlinx-coroutines-core/kotlinx.coroutines.selects/-select-clause/index.html",
235+
),
236+
)
237+
)
74238
}
75239
}

0 commit comments

Comments
 (0)