Repository navigation
3.1r1: one answer for a read of a point type the DUT doesn't have - #70
Merged
Merged
Conversation
3.1r1 contradicts itself here. Its Table 11-1, and TB2016-001, which it follows, have a device without a point type answer a read of it with IIN2.1 or IIN2.2, but some of its steps still expect a Null Response, so as printed the answer depends on the point type: a device without double-bit inputs must answer g3 with an error, and g4 without one. Now, for every point type, a device without the points, or with them uninstalled or disabled for the test, answers with a Null Error Response: no objects, IIN2.1 or IIN2.2 set, and IIN2.0 clear. That changes 8.3.2, 8.13.2b, 8.14.2b, 8.17.2b, 8.19.2b, 8.21b, 8.22.1, 8.22b, 8.23.2.x.1 and 8.25.2c-e; 8.24's seven tests now read a type the device doesn't have and require the error, where they didn't run. A device with the points but no events still answers a read of them with a Null Response, as printed. A level 1 test of a device that can't read a type runs only where the device has it. 2.7 is unchanged: where 3.1r1 used its definitions, 3.1r1 has its own, or passes 2.7's behavior as the default. The README lists each test, what it prints and what dnp3c accepts, and CLAUDE.md records how a revision's contradictions with itself are resolved.
This was referenced Oct 15, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The contradiction
3.1r1 contradicts itself about how a device answers a read of a point type it has no points of:
As printed, the answer therefore depends on the point type. A device without double-bit inputs must answer a read of g3 with an error, but a read of g4 with a plain Null Response (#7).
The resolution
One rule for every point type:
A level 1 test of a device that can't read a type (8.13.2a and the like) now runs only for a device that has the type. A device without the type gets the test above. Before, a device with no points and reads switched off could pass with IIN2.0.
Unchanged
2.7 is unchanged. Where 3.1r1 reused 2.7's code, it now has its own:
NoEventsonly for a device without the pointsAnalogInputChangea parameter whose default is 2.7'sisNullDocumentation
Checks
mvn testpasses. A newMissingPointsTestruns all 25 affected tests against a device without the points:-describedump: I compared every procedure's-describeoutput and the disabled lists, before and after, at each subset level in four configurations: