Compliance Report
This section details the current state of each language binding with respect to our standard compliance suite.
Language bindings must pass every test case. A category is complete when a language binding passes all of its test cases.
| Language | Tests passing | Categories complete |
|---|---|---|
| python | 100.00% (106 / 106) | 12 / 12 |
| java | 100.00% (106 / 106) | 12 / 12 |
| dotnet | 100.00% (106 / 106) | 12 / 12 |
| golang | 100.00% (106 / 106) | 12 / 12 |
Status: 🟢 passing, 🔴 failing, ╠not implemented. Failing and not implemented tests both count as not passing.
Primitives & Optional Values
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| anyValuesKeepTheirType | 🟢 | 🟢 | 🟢 | 🟢 |
| datesRoundTrip | 🟢 | 🟢 | 🟢 | 🟢 |
| hostNullIsSentAsUndefined | 🟢 | 🟢 | 🟢 | 🟢 |
| isoDateStringsStayStrings | 🟢 | 🟢 | 🟢 | 🟢 |
| jsonValuesCrossTheBoundaryUnchanged | 🟢 | 🟢 | 🟢 | 🟢 |
| primitivePropertiesCanBeRead | 🟢 | 🟢 | 🟢 | 🟢 |
| primitivesRoundTrip | 🟢 | 🟢 | 🟢 | 🟢 |
| undefinedOptionalListReadsAsAbsent | 🟢 | 🟢 | 🟢 | 🟢 |
| undefinedOptionalMapReadsAsAbsent | 🟢 | 🟢 | 🟢 | 🟢 |
| unionPropertyAcceptsEachMemberType | 🟢 | 🟢 | 🟢 | 🟢 |
| unionPropertyReturnsConcreteType | 🟢 | 🟢 | 🟢 | 🟢 |
| unsetOptionalPropertyReadsAsAbsent | 🟢 | 🟢 | 🟢 | 🟢 |
| variadicArgumentsAreForwarded | 🟢 | 🟢 | 🟢 | 🟢 |
Classes & Object References
Statics & Constants
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| constantsCanBeRead | 🟢 | 🟢 | 🟢 | 🟢 |
| staticMembersCanBeUsed | 🟢 | 🟢 | 🟢 | 🟢 |
| staticPropertyAssignmentUpdatesJavaScript | 🟢 | 🟢 | 🟢 | 🟢 |
Enums
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| enumPropertiesCanBeReadAndWritten | 🟢 | 🟢 | 🟢 | 🟢 |
| enumValuesReturnedByTheKernel | 🟢 | 🟢 | 🟢 | 🟢 |
| enumsFromDependenciesCrossTheBoundary | 🟢 | 🟢 | 🟢 | 🟢 |
Collections
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| arrayPropertyCanBeRead | 🟢 | 🟢 | 🟢 | 🟢 |
| arraysOfObjectsPreserveOrderAndType | 🟢 | 🟢 | 🟢 | 🟢 |
| collectionPropertiesCanBeSetAndRead | 🟢 | 🟢 | 🟢 | 🟢 |
| listOfInterfacesElementsAreUsable | 🟢 | 🟢 | 🟢 | 🟢 |
| listOfStructsElementsHaveStructType | 🟢 | 🟢 | 🟢 | 🟢 |
| mapOfInterfacesValuesAreUsable | 🟢 | 🟢 | 🟢 | 🟢 |
| mapOfStructsValuesHaveStructType | 🟢 | 🟢 | 🟢 | 🟢 |
| mapPropertyCanBeRead | 🟢 | 🟢 | 🟢 | 🟢 |
| mapsOfObjectsCanBeRead | 🟢 | 🟢 | 🟢 | 🟢 |
| returnedArrayCanBeRead | 🟢 | 🟢 | 🟢 | 🟢 |
| returnedMapCanBeRead | 🟢 | 🟢 | 🟢 | 🟢 |
| staticArrayPropertyCanBeRead | 🟢 | 🟢 | 🟢 | 🟢 |
| staticMapPropertyCanBeRead | 🟢 | 🟢 | 🟢 | 🟢 |
Structs & Keyword Arguments
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| diamondInheritedStructPropertiesAppearOnce | 🟢 | 🟢 | 🟢 | 🟢 |
| incompleteStructIsRejected | 🟢 | 🟢 | 🟢 | 🟢 |
| overlappingStructUnionsAreDisambiguated | 🟢 | 🟢 | 🟢 | 🟢 |
| positionalArgumentAndStructPropertyWithSameName | 🟢 | 🟢 | 🟢 | 🟢 |
| receivedStructEqualsHostBuiltStruct | 🟢 | 🟢 | 🟢 | 🟢 |
| structReceivedAsParentStructType | 🟢 | 🟢 | 🟢 | 🟢 |
| structsArePassedByValue | 🟢 | 🟢 | 🟢 | 🟢 |
| structsAreSentAsPlainData | 🟢 | 🟢 | 🟢 | 🟢 |
| submoduleStructCanBePassed | 🟢 | 🟢 | 🟢 | 🟢 |
| unionOfListAndObjectStructPropertyRoundTrips | 🟢 | 🟢 | 🟢 | 🟢 |
| unionStructPropertyKeepsConcreteType | 🟢 | 🟢 | 🟢 | 🟢 |
| unsetStructPropertiesAreOmitted | 🟢 | 🟢 | 🟢 | 🟢 |
Interfaces
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| callbackReceivesInterfaceArguments | 🟢 | 🟢 | 🟢 | 🟢 |
| hostCanImplementInterface | 🟢 | 🟢 | 🟢 | 🟢 |
| hostCanImplementInterfaceThroughSuperclass | 🟢 | 🟢 | 🟢 | 🟢 |
| hostObjectsKeepIdentityAcrossTheBoundary | 🟢 | 🟢 | 🟢 | 🟢 |
| hostSubclassCanImplementAdditionalInterface | 🟢 | 🟢 | 🟢 | 🟢 |
| interfacePropertyCanBeSet | 🟢 | 🟢 | 🟢 | 🟢 |
| interfaceValueCanBePassedBack | 🟢 | 🟢 | 🟢 | 🟢 |
| interfaceValueWithPrivateTypeIsUsable | 🟢 | 🟢 | 🟢 | 🟢 |
| kernelUsesHostInterfaceAccessors | 🟢 | 🟢 | 🟢 | 🟢 |
| objectLiteralReturnedAsInterfaceIsUsable | 🟢 | 🟢 | 🟢 | 🟢 |
| objectsUsableThroughEveryInterface | 🟢 | 🟢 | 🟢 | 🟢 |
Subclassing & Overrides
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| getterOverrideCanCallSuper | 🟢 | 🟢 | 🟢 | 🟢 |
| getterOverrideErrorPropagates | 🟢 | 🟢 | 🟢 | 🟢 |
| hostAccessorDoesNotOverridePrivateProperty | 🟢 | 🟢 | 🟢 | 🟢 |
| hostMethodDoesNotOverridePrivateMethod | 🟢 | 🟢 | 🟢 | 🟢 |
| hostMethodDoesNotOverridePrivateProperty | 🟢 | 🟢 | 🟢 | 🟢 |
| hostSubclassCanBeUsed | 🟢 | 🟢 | 🟢 | 🟢 |
| methodCallsUseHostOverride | 🟢 | 🟢 | 🟢 | 🟢 |
| methodOverrideCanCallSuper | 🟢 | 🟢 | 🟢 | 🟢 |
| overrideReceivesDeserializedArguments | 🟢 | 🟢 | 🟢 | 🟢 |
| propertyAccessesUseHostOverrides | 🟢 | 🟢 | 🟢 | 🟢 |
| protectedGetterCanBeOverridden | 🟢 | 🟢 | 🟢 | 🟢 |
| protectedMethodCanBeOverridden | 🟢 | 🟢 | 🟢 | 🟢 |
| protectedSetterCanBeOverridden | 🟢 | 🟢 | 🟢 | 🟢 |
| setterOverrideCanCallSuper | 🟢 | 🟢 | 🟢 | 🟢 |
| setterOverrideErrorPropagates | 🟢 | 🟢 | 🟢 | 🟢 |
| syncGetterOverrideCallingAsyncFails | 🟢 | 🟢 | 🟢 | 🟢 |
| syncMethodOverrideCallingAsyncFails | 🟢 | 🟢 | 🟢 | 🟢 |
| syncSetterOverrideCallingAsyncFails | 🟢 | 🟢 | 🟢 | 🟢 |
Async
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| asyncMethodCanBeOverridden | 🟢 | 🟢 | 🟢 | 🟢 |
| asyncMethodReturningNothing | 🟢 | 🟢 | 🟢 | 🟢 |
| asyncMethodsCanBeCalled | 🟢 | 🟢 | 🟢 | 🟢 |
| asyncOverrideCanBeInherited | 🟢 | 🟢 | 🟢 | 🟢 |
| asyncOverrideCanCallSuper | 🟢 | 🟢 | 🟢 | 🟢 |
| asyncOverrideErrorPropagates | 🟢 | 🟢 | 🟢 | 🟢 |
| multipleAsyncMethodsCanBeOverridden | 🟢 | 🟢 | 🟢 | 🟢 |
| staticAsyncMethodsCanBeCalled | 🟢 | 🟢 | 🟢 | 🟢 |
Errors
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| kernelErrorMessageReachesTheHost | 🟢 | 🟢 | 🟢 | 🟢 |
| kernelErrorsReachTheHost | 🟢 | 🟢 | 🟢 | 🟢 |
Naming
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| reservedWordClassPropertiesAreAccessible | 🟢 | 🟢 | 🟢 | 🟢 |
| reservedWordMethodsAreCallable | 🟢 | 🟢 | 🟢 | 🟢 |
| reservedWordStructPropertiesAreUsable | 🟢 | 🟢 | 🟢 | 🟢 |
Runtime Environment
| Test | python | java | dotnet | golang |
|---|---|---|---|---|
| kernelKnowsTheHostRuntime | 🟢 | 🟢 | 🟢 | 🟢 |
| nodeStandardLibraryIsAvailable | 🟢 | 🟢 | 🟢 | 🟢 |