Skip to content

Commit

Permalink
feat(plc4go/try-assert): try/assert is now working in golang
Browse files Browse the repository at this point in the history
  • Loading branch information
sruehl committed Nov 29, 2021
1 parent 7949d53 commit c076381
Show file tree
Hide file tree
Showing 14 changed files with 176 additions and 66 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -851,6 +851,7 @@ func ${type.name}Parse(readBuffer utils.ReadBuffer<#if hasParserArguments>, ${pa
return nil, closeErr
}
<#else>
currentPos := readBuffer.GetPos()
if pullErr := readBuffer.PullContext("${optionalField.name}"); pullErr != nil {
return nil, pullErr
}
Expand All @@ -876,12 +877,16 @@ func ${type.name}Parse(readBuffer utils.ReadBuffer<#if hasParserArguments>, ${pa
_val, _err := ${typeName}Parse(readBuffer${refParams})
</@compress>

if _err != nil {
switch {
case _err != nil && _err != utils.ParseAssertError:
return nil, errors.Wrap(_err, "Error parsing '${optionalField.name}' field")<@emitImport import="github.com/pkg/errors" />
}
${optionalField.name} = Cast${helper.getLanguageTypeNameForField(field)}(_val)
if closeErr := readBuffer.CloseContext("${optionalField.name}"); closeErr != nil {
return nil, closeErr
case _err == utils.ParseAssertError:
readBuffer.SetPos(currentPos)
default:
${optionalField.name} = Cast${helper.getLanguageTypeNameForField(field)}(_val)
if closeErr := readBuffer.CloseContext("${optionalField.name}"); closeErr != nil {
return nil, closeErr
}
}
</#if>
}
Expand Down Expand Up @@ -922,6 +927,9 @@ func ${type.name}Parse(readBuffer utils.ReadBuffer<#if hasParserArguments>, ${pa
}
${assertField.name} = Cast${helper.getLanguageTypeNameForField(field)}(_val)
</#if>
if ${assertField.name} != ${helper.toParseExpression(assertField, assertField.type, assertField.conditionExpression, parserArguments)} {
return nil, utils.ParseAssertError
}
<#break>
<#case "padding">
<#assign paddingField = field.asPaddingField().orElseThrow()>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func Test(t *testing.T) {
driverManager := plc4go.NewPlcDriverManager()
driverManager.RegisterDriver(bacnetip.NewDriver())
driverManager.(spi.TransportAware).RegisterTransport(pcap.NewTransport())
result := <-driverManager.GetConnection("bacnet-ip:pcap://" + file + "?transport-type=udp&speed-factor=1")
result := <-driverManager.GetConnection("bacnet-ip:pcap://" + file + "?transport-type=udp&speed-factor=4")
if result.GetErr() != nil {
panic(result.GetErr())
}
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 22 additions & 10 deletions plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 11 additions & 5 deletions plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 22 additions & 10 deletions plc4go/internal/plc4go/s7/readwrite/model/S7Message.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit c076381

Please sign in to comment.