File 0624-Test-compiling-value-of-SEQUENCE-OF-CHOICE-with-exte.patch of Package erlang

From 9928a3918c46c6cc412a9ce008a595d7587b0785 Mon Sep 17 00:00:00 2001
From: Simon Cornish <zl9d97p02@sneakemail.com>
Date: Mon, 25 Feb 2019 13:27:15 -0800
Subject: [PATCH 5/6] Test compiling value of SEQUENCE OF CHOICE with
 extensions

---
 lib/asn1/test/Makefile                         |  1 +
 lib/asn1/test/asn1_SUITE.erl                   |  6 ++++++
 lib/asn1/test/asn1_SUITE_data/SeqOfChoExt.asn1 | 27 ++++++++++++++++++++++++++
 lib/asn1/test/testSeqOfChoExt.erl              | 15 ++++++++++++++
 4 files changed, 49 insertions(+)
 create mode 100644 lib/asn1/test/asn1_SUITE_data/SeqOfChoExt.asn1
 create mode 100644 lib/asn1/test/testSeqOfChoExt.erl

diff --git a/lib/asn1/test/Makefile b/lib/asn1/test/Makefile
index accc773951..6ff4aa8d0f 100644
--- a/lib/asn1/test/Makefile
+++ b/lib/asn1/test/Makefile
@@ -60,6 +60,7 @@ MODULES= \
 	testSeqOf \
 	testSeqOfIndefinite \
 	testSeqOfCho \
+	testSeqOfChoExt \
 	testSeqOfExternal \
 	testSeqOfTag \
 	testSetDefault \
diff --git a/lib/asn1/test/asn1_SUITE.erl b/lib/asn1/test/asn1_SUITE.erl
index 329115be08..a88e464996 100644
--- a/lib/asn1/test/asn1_SUITE.erl
+++ b/lib/asn1/test/asn1_SUITE.erl
@@ -119,6 +119,7 @@ groups() ->
        {group, [], [testSeqOf,
                     testSeqOfIndefinite]}, % Uses 'Mvrasn*'
        testSeqOfCho,
+       testSeqOfChoExt,
        testSetDefault,
        testExtensionAdditionGroup,
        testSetOptional,
@@ -541,6 +542,11 @@ testSeqOfCho(Config, Rule, Opts) ->
     asn1_test_lib:compile("SeqOfCho", Config, [Rule|Opts]),
     testSeqOfCho:main(Rule).
 
+testSeqOfChoExt(Config) -> test(Config, fun testSeqOfChoExt/3).
+testSeqOfChoExt(Config, Rule, Opts) ->
+    asn1_test_lib:compile("SeqOfChoExt", Config, [Rule|Opts]),
+    testSeqOfChoExt:main(Rule).
+
 testSeqOfIndefinite(Config) ->
     test(Config, fun testSeqOfIndefinite/3, [ber]).
 testSeqOfIndefinite(Config, Rule, Opts) ->
diff --git a/lib/asn1/test/asn1_SUITE_data/SeqOfChoExt.asn1 b/lib/asn1/test/asn1_SUITE_data/SeqOfChoExt.asn1
new file mode 100644
index 0000000000..51077754fd
--- /dev/null
+++ b/lib/asn1/test/asn1_SUITE_data/SeqOfChoExt.asn1
@@ -0,0 +1,27 @@
+SeqOfChoExt DEFINITIONS AUTOMATIC TAGS EXTENSIBILITY IMPLIED ::=
+BEGIN
+
+Seq2 ::= SEQUENCE {
+	octstr [PRIVATE 6] OCTET STRING OPTIONAL
+}
+
+SeqOfCho ::= SEQUENCE OF CHOICE {
+	nullable	NULL,
+	seq2 Seq2
+}
+
+Seq1 ::= SEQUENCE {
+	int INTEGER,
+	soc SeqOfCho
+}
+
+seq1 Seq1 ::= {
+  int  10,
+  soc {
+    seq2 : {
+      octstr '01020A'H
+    }
+  }
+}
+
+END
diff --git a/lib/asn1/test/testSeqOfChoExt.erl b/lib/asn1/test/testSeqOfChoExt.erl
new file mode 100644
index 0000000000..1e72c60841
--- /dev/null
+++ b/lib/asn1/test/testSeqOfChoExt.erl
@@ -0,0 +1,15 @@
+-module(testSeqOfChoExt).
+
+-export([main/1]).
+
+%-record('Seq2', { octstr = asn1_NOVALUE }).
+%-record('Seq1', { int, soc }).
+
+main(_Rules) ->
+    roundtrip('SeqOfChoExt':seq1()).
+
+roundtrip(Value) ->
+    roundtrip(Value, Value).
+roundtrip(Value, Exp) ->
+    Type = element(1,Value),
+    asn1_test_lib:roundtrip('SeqOfChoExt', Type, Value, Exp).
-- 
2.16.4