Skip to content

Bicep.RpcClient - use PipeReader & PipeWriter APIs#18212

Merged
anthony-c-martin merged 2 commits into
mainfrom
anthony-c-martin-patch-8
Oct 6, 2025
Merged

Bicep.RpcClient - use PipeReader & PipeWriter APIs#18212
anthony-c-martin merged 2 commits into
mainfrom
anthony-c-martin-patch-8

Conversation

@anthony-c-martin
Copy link
Copy Markdown
Member

@anthony-c-martin anthony-c-martin commented Oct 6, 2025

  • Use PipeReader & PipeWriter APIs
  • Ensure the child process is explicitly killed

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Oct 6, 2025

Test this change out locally with the following install scripts (Action run 18283661412)

VSCode
  • Mac/Linux
    bash <(curl -Ls https://aka.ms/bicep/nightly-vsix.sh) --run-id 18283661412
  • Windows
    iex "& { $(irm https://aka.ms/bicep/nightly-vsix.ps1) } -RunId 18283661412"
Azure CLI
  • Mac/Linux
    bash <(curl -Ls https://aka.ms/bicep/nightly-cli.sh) --run-id 18283661412
  • Windows
    iex "& { $(irm https://aka.ms/bicep/nightly-cli.ps1) } -RunId 18283661412"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Oct 6, 2025

Dotnet Test Results

    96 files   -     48      96 suites   - 48   42m 47s ⏱️ - 28m 47s
12 410 tests  -     13  12 410 ✅  -     13  0 💤 ±0  0 ❌ ±0 
28 565 runs   - 14 276  28 565 ✅  - 14 276  0 💤 ±0  0 ❌ ±0 

Results for commit 204ab2c. ± Comparison against base commit 180d3d5.

This pull request removes 1922 and adds 652 tests. Note that renamed tests count towards both.

		nestedProp1: 1
		nestedProp2: 2
		prop1: true
		prop2: false
	1
	2
	\$'")
	prop1: true
	prop2: false
…
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000
�ӽ
�0\u0010\u0007��>E�\u0003Ĥ��R��Ep�\u0001b{�b��\u0015\u0002��\u000e���R?����A.\u0017�b�r~A.��\u0016�\u0006;\u0015ll�e\u0000z�;
�)|�L�61c܏>I�Kݸ�\u001d�\u0013w���r��\u000b�+�)j\u000b1\u0008e��\u0004'm-\u001b����]���˜�8ԧ�k/�ڿ��`���޷�W��	0�%J\u0004PI����n��L�y��<Z��ϔ5�/��P\u0015���\u001dk�}{� \u0008��}�䈼v\u0000\u000c\u0000\u0000,"Value cannot be null. (Parameter 'source')")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000
��K
�0\u0010\u0006�=EO��4\u0019�,�w�\u0015�\u0016|�T��\u0005��\u000b�E���\u0008�[f\u00182���to�]a�E�pAR��-
�����#$d�^��""ƒa�I&tMkk?�\u001aw��L'�=�E���"-�pm�\u0000鍯\u001dfk��l{�;wuU������P�5�~h4������O�\u0007�\u0018\u0012(PRb&|�Q���*�����\u001f�'��(�Bx\u0002�^!�\u0000\u000c\u0000\u0000,"The path: index.json was not found in artifact contents")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000
���\u000b�0\u0014\u0007��+�?`n��+�\u0010t�\u0008\u000b��1R�@\u000b5\u0010�盇�tQ\u000b���`o\u001b�ao��U����p�@z\u0018
�\u0018\u001c�s�EA *^\u0008"�q\u001f!�\u0019|�\u000e��֥\u0019e��~�/\u001d]gy\u001aR��`\u0012��
\u0014\u0017���ک�F�s��9̊$m�\u0016m{����cZ=��7�\u0015}�?�\u0001QF\u0004\u0011\u0000�\u000f\u0010�\u000c���$����?�(>,6���ocw�\u001f��3Y�eY�{\u0002�O\u001c.\u0000\u000c\u0000\u0000,"'7' is an invalid end of a number. Expected a delimiter. Path: $.INVALID_JSON | LineNumber: 0 | BytePositionInLine: 20.")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000\u0003�ӽ
�0\u0010\u0007��}
� �%9�\u000c�\u001d�
�\u0015���\u0018E���\u001b�B\u0007���B�#S��.�?O���\u0015�XԞKe(�ln\u0010dJ��\u000f���~\u0001\u0006�(c,�g�dD�\u001b[�U�����6�͹,r�d�\u0011Rr#\u000c(ԛP;L�0��攷������PN5���h���}kƧ�\u0003\u0008�\u0004\u001a��\u000c0�\u001f�\u000c�_$�����c�
�(��5<\u0001\u000bw\u0003w\u0000\u000c\u0000\u0000,"The path: index.json was not found in artifact contents")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000\u0003��K
�0\u0010\u0006�=E�\u0001Ҥ��\u0008ݻ\u0011�x�؎X��4\u0015
��M\u0017��M\u001f���*3�	�O½i�`2�-��\u0016!Ac���w�øBL�QD��1B�\u001d}�\u001ewۘڍ2�Y?(Zc��\u0005$L	�V\u0014sB��L����C5�qe�s��\u0019��boe�^\u000c�/}Mo����;�[�i�\u0011\u0013TQŅ�\u0011r�F0��Y2������PB[A�@���\u0008u��'s��\z6��<o:/�܀�\u0000\u000c\u0000\u0000,"Value cannot be null. (Parameter 'source')")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000\u0003��M\u000b�0\u0018\u0007��\u0014�\u000f0��^Z�!�\u0011\u0016\u0004]c���\u0016j �囇�t�%h?v����1�#�^��D�IQ\u0012�)�\u0012�70\u0004c��
�$��
\u0010H.|�p��$-\u001ee�\u000b3�\u0018g� o�u�fI@%Wfy>#\u0000J����ڹ�F\u0015���\u0012�y���Z��=�j���V���
wƷ���\u0010� A2.�C 87yģd����t��܆��氋�\u00056?��3Y�eY�{\u0001�郂\u0000\u000c\u0000\u0000,"'7' is an invalid end of a number. Expected a delimiter. Path: $.INVALID_JSON | LineNumber: 0 | BytePositionInLine: 20.")
Bicep.Core.IntegrationTests.DirectResourceCollectionTests ‑ DirectResourceCollectionAccess_NotAllowedWithinLoops ("output loopOutput array = [for i in range(0, 2): {
  prop: map(containerWorkers, (w) => w.properties.ipAddress.ip)
}]")
Bicep.Core.IntegrationTests.DirectResourceCollectionTests ‑ DirectResourceCollectionAccess_NotAllowedWithinLoops ("resource propertyLoop 'Microsoft.ContainerInstance/containerGroups@2022-09-01' = {
  name: 'gh9440-loop'
  location: 'westus'
  properties: {
    containers: [for i in range(0, 2): {
      name: 'gh9440-w1c-${i}'
      properties: {
        command: [
          'echo "${join(map(containerWorkers, (w) => w.properties.ipAddress.ip), ',')}"'
        ]
      }
    }]
  }
}")
Bicep.Core.IntegrationTests.DirectResourceCollectionTests ‑ DirectResourceCollectionAccess_NotAllowedWithinLoops ("var loopVar = [for i in range(0, 2): {
  prop: map(containerWorkers, (w) => w.properties.ipAddress.ip)
}]")
Bicep.Core.IntegrationTests.Emit.ParamsFileWriterTests ‑ Params_file_with_no_errors_should_compile_correctly ("
using 'main.bicep'

// involves all syntax
param myParam = {
  arr: [
    {
      a : 'b'
    }
    {
      c : true
    }
  ]
  name: 'complex object!'
  priority: 3
  val: null
  obj: {
      a: 'b'
      c: [
          'd'
           1
      ]
  }
}","
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "myParam": {
      "value": {
        "arr" : [
          {
            "a" : "b"
          },
          {
            "c" : true
          }
        ],
        "name" : "complex object!",
        "priority" : 3,
        "val" : null,
        "obj" : {
          "a" : "b",
          "c" : [
            "d",
            1
          ]
        }
      }
    }
  }
}","
param myParam object
")
…

♻️ This comment has been updated with latest results.

@anthony-c-martin anthony-c-martin changed the title Bicep.RpcClient - ensure the child process is explicitly killed Bicep.RpcClient - use PipeReader & PipeWriter APIs Oct 6, 2025
@anthony-c-martin anthony-c-martin force-pushed the anthony-c-martin-patch-8 branch from 1f1786e to 1d6d046 Compare October 6, 2025 11:58
@anthony-c-martin anthony-c-martin force-pushed the anthony-c-martin-patch-8 branch from 1d6d046 to 204ab2c Compare October 6, 2025 13:42
@anthony-c-martin anthony-c-martin merged commit 6bb5d5f into main Oct 6, 2025
42 checks passed
@anthony-c-martin anthony-c-martin deleted the anthony-c-martin-patch-8 branch October 6, 2025 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants