diff --git a/cspell.json b/cspell.json index ae3545cc..78fd7a39 100644 --- a/cspell.json +++ b/cspell.json @@ -62,7 +62,8 @@ "yamls", "yamltests", "wifipaf", - "WIFIPAF" + "WIFIPAF", + "pidof" ], "ignoreWords": [ "bdist", @@ -115,7 +116,8 @@ "test_collections/matter/python_tests/docs/common_test_failures/", "sdk_patch", ".devcontainer", - "test_collections/matter/sdk_tests/*.json" + "test_collections/matter/sdk_tests/*.json", + "test_collections/matter/sdk_tests/support/performance_tests/" ], "enableFiletypes": [ "shellscript" diff --git a/jupyter/processing_log.ipynb b/jupyter/processing_log.ipynb deleted file mode 100644 index 4600dea8..00000000 --- a/jupyter/processing_log.ipynb +++ /dev/null @@ -1,285 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 3, - "id": "346bebb3-7d44-4a96-8663-0ea71709689d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Total Commissioning 99-percentile: 41788.93000000014\n", - "Discovery Latency 99-percentile: 2448.2400000000152\n", - "Read Commissioning Info Latency 99-percentile: 865.9000000000019\n", - "Pase Latency 99-percentile: 39319.95000000013\n", - "\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA97ElEQVR4nO3deVxV1f7/8fdBZhVQUJAUxCFnzaGI1GsphWOZllp6Q7NsUFOxyQaH6orpdSyHBhPrZpbdssGcp65zmkOWkTOWgjkAjqiwfn/083w7ggNH4JyNr+fjsR8Pztrr7P1ZbIS3e+91ts0YYwQAAGBBHq4uAAAAwFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGQAAYFkEGcBNrVixQjabTStWrHB1KS5RWOPft2+fbDabkpKSCnS7l6pcubJ69uxZqPu4Hjf6zxeKD4IM8Dc2m+2almv55T9y5EjNnTu30Gu+aPfu3XriiSdUpUoV+fr6KiAgQE2bNtXEiRN15syZIqsDrtOzZ89r+vl154AF5JenqwsA3MlHH33k8PrDDz/U4sWLc7XXqlXrqtsaOXKkHnjgAXXs2LEgS8zTvHnz9OCDD8rHx0ePPPKI6tatq3PnzmnVqlV67rnn9PPPP+vdd98t9DoK0j/+8Q+dOXNG3t7eBbrdyMhInTlzRl5eXgW63UslJyfLw6No/6/4xBNPKDY21v567969Gjp0qPr06aPmzZvb26tWraro6OhC+f4CRY0gA/xNjx49HF6vW7dOixcvztXuTvbu3atu3bopMjJSy5YtU4UKFezr+vbtq127dmnevHkurNA5Hh4e8vX1LfDt2my2QtnupXx8fAp9H5eKiYlRTEyM/fXGjRs1dOhQxcTE5PkzXBTfB6CwcWkJyKdTp05p8ODBqlSpknx8fFSjRg39+9//1t8fJG+z2XTq1CnNnDkz1+n8/fv36+mnn1aNGjXk5+en4OBgPfjgg9q3b59T9YwePVonT57U9OnTHULMRdWqVdOAAQPsry9cuKDXX39dVatWlY+PjypXrqyXXnpJWVlZDu+rXLmy2rdvrxUrVqhJkyby8/NTvXr17JfVvvjiC9WrV0++vr5q3LixNm/e7PD+nj17qlSpUkpJSVH79u1VqlQp3XTTTZo8ebIk6aefflLLli1VsmRJRUZGatasWQ7vz+sejp07d6pz584KCwuTr6+vKlasqG7duikjI8PeZ/HixWrWrJmCgoJUqlQp1ahRQy+99JJ9/eXukVm2bJmaN2+ukiVLKigoSPfdd5927Njh0Gf48OGy2WzatWuXevbsqaCgIAUGBqpXr146ffp0ru/f3y/hJCUlyWazafXq1UpISFC5cuVUsmRJ3X///frzzz8d3puTk6Phw4crPDxc/v7+uuuuu/TLL78U6H03eX1/77zzTtWtW1fbtm1TixYt5O/vr2rVqunzzz+XJK1cuVLR0dHy8/NTjRo1tGTJklzb/eOPP/Too48qNDRUPj4+qlOnjj744IMCqRnIC0EGyAdjjO69916NHz9erVu31rhx41SjRg0999xzSkhIsPf76KOP5OPjo+bNm+ujjz7SRx99pCeeeEKS9MMPP2jNmjXq1q2bJk2apCeffFJLly7VnXfemeuP4bX45ptvVKVKFd1xxx3X1P+xxx7T0KFD1ahRI40fP14tWrRQYmKiunXrlqvvrl279PDDD6tDhw5KTEzU8ePH1aFDB3388ccaNGiQevTooREjRmj37t3q0qWLcnJyHN6fnZ2tNm3aqFKlSho9erQqV66sfv36KSkpSa1bt1aTJk305ptvqnTp0nrkkUe0d+/ey9Z97tw5xcXFad26derfv78mT56sPn36aM+ePUpPT5ck/fzzz2rfvr2ysrL02muvaezYsbr33nu1evXqK35PlixZori4OB0+fFjDhw9XQkKC1qxZo6ZNm+YZMLt06aITJ04oMTFRXbp0UVJSkkaMGHH1b76k/v37a+vWrRo2bJieeuopffPNN+rXr59DnyFDhmjEiBFq0qSJxowZo+rVqysuLk6nTp26pn1cj+PHj6t9+/aKjo7W6NGj5ePjo27duunTTz9Vt27d1LZtW40aNUqnTp3SAw88oBMnTtjfm5aWpttvv11LlixRv379NHHiRFWrVk29e/fWhAkTCr123KAMgMvq27ev+fs/k7lz5xpJ5o033nDo98ADDxibzWZ27dplbytZsqSJj4/Ptc3Tp0/nalu7dq2RZD788EN72/Lly40ks3z58svWl5GRYSSZ++6775rGs2XLFiPJPPbYYw7tzz77rJFkli1bZm+LjIw0ksyaNWvsbQsXLjSSjJ+fn9m/f7+9/Z133slVa3x8vJFkRo4caW87fvy48fPzMzabzcyePdve/uuvvxpJZtiwYZcd/+bNm40kM2fOnMuOb/z48UaS+fPPPy/bZ+/evUaSmTFjhr3tlltuMeXLlzdHjx61t23dutV4eHiYRx55xN42bNgwI8k8+uijDtu8//77TXBwsENbZGSkw/GfMWOGkWRiY2NNTk6OvX3QoEGmRIkSJj093RhjTGpqqvH09DQdO3Z02N7w4cONpDx/pi7nhx9+yDXWi/L6+WrRooWRZGbNmmVvu3hsPDw8zLp16+ztF38W/r7t3r17mwoVKpgjR4447Ktbt24mMDAwz5994HpxRgbIh++++04lSpTQM88849A+ePBgGWM0f/78q27Dz8/P/vX58+d19OhRVatWTUFBQfrxxx/zVU9mZqYkqXTp0tfU/7vvvpMkh7NH0l/1S8p1L03t2rUd7rmIjo6WJLVs2VIRERG52vfs2ZNrn4899pj966CgINWoUUMlS5ZUly5d7O01atRQUFBQnu+/KDAwUJK0cOHCy565CgoKkiR99dVXuc4OXc6hQ4e0ZcsW9ezZU2XLlrW3169fX3fffbf9e/Z3Tz75pMPr5s2b6+jRo/bjcSV9+vSRzWZzeG92drb2798vSVq6dKkuXLigp59+2uF9/fv3v6bxXK9SpUo5nJ27eGxq1aplP85S7mNujNF///tfdejQQcYYHTlyxL7ExcUpIyMj3z/fwLUgyAD5sH//foWHh+cKDhdnMV38Y3QlZ86c0dChQ+332ISEhKhcuXJKT093uNfjWgQEBEiSw+n9q9Xv4eGhatWqObSHhYUpKCgoV/1/DyvS/4WJSpUq5dl+/Phxh3ZfX1+VK1cuV9+KFSs6/DG/2H7p+/8uKipKCQkJev/99xUSEqK4uDhNnjzZ4XvWtWtXNW3aVI899phCQ0PVrVs3ffbZZ1cMNRfHXKNGjVzratWqpSNHjuS6pHPp96VMmTKSco8/L1d778V6Lj1GZcuWtfctTJc7Nlc75n/++afS09P17rvvqly5cg5Lr169JEmHDx8u9Ppx42HWElDE+vfvrxkzZmjgwIGKiYlRYGCgbDabunXrds1nES4KCAhQeHi4tm/fnq/3XfqH6nJKlCiRr3bztxueC+L9lxo7dqx69uypr776SosWLdIzzzyjxMRErVu3ThUrVpSfn5++//57LV++XPPmzdOCBQv06aefqmXLllq0aNFl95tfztZ/ve8tCs4es4s/uz169FB8fHyefevXr18AFQKOCDJAPkRGRmrJkiU6ceKEw1mZX3/91b7+osuFhc8//1zx8fEaO3asve3s2bP2G1bzq3379nr33Xe1du1ah8tAl6s/JydHO3fudPgsnLS0NKWnpzvU767q1aunevXq6ZVXXrHfkDtt2jS98cYbkv6att2qVSu1atVK48aN08iRI/Xyyy9r+fLlDp+xctHFMScnJ+da9+uvvyokJEQlS5Ys3EHlUc+uXbsUFRVlbz969Og1nfFxlXLlyql06dLKzs7O8/sMFBYuLQH50LZtW2VnZ+vtt992aB8/frxsNpvatGljbytZsmSe4aREiRK5/vf91ltvKTs726mann/+eZUsWVKPPfaY0tLScq3fvXu3Jk6caK9fUq4ZJOPGjZMktWvXzqkaikJmZqYuXLjg0FavXj15eHjYp44fO3Ys1/tuueUWSco1vfyiChUq6JZbbtHMmTMdjtf27du1aNEi+/esqLRq1Uqenp6aOnWqQ/ulP3PupkSJEurcubP++9//5nmG8NIp5kBB4YwMkA8dOnTQXXfdpZdffln79u1TgwYNtGjRIn311VcaOHCgqlatau/buHFjLVmyROPGjVN4eLiioqIUHR2t9u3b66OPPlJgYKBq166ttWvXasmSJQoODnaqpqpVq2rWrFnq2rWratWq5fDJvmvWrNGcOXPsnz3SoEEDxcfH691331V6erpatGihDRs2aObMmerYsaPuuuuugvg2FYply5apX79+evDBB3XzzTfrwoUL+uijj+x/QCXptdde0/fff6927dopMjJShw8f1pQpU1SxYkU1a9bsstseM2aM2rRpo5iYGPXu3VtnzpzRW2+9pcDAQA0fPryIRviX0NBQDRgwwD51vHXr1tq6davmz5+vkJCQa74s6AqjRo3S8uXLFR0drccff1y1a9fWsWPH9OOPP2rJkiV5Bk3gehFkgHzw8PDQ119/raFDh+rTTz/VjBkzVLlyZY0ZM8Y+8+eicePGqU+fPnrllVd05swZxcfHKzo6WhMnTlSJEiX08ccf6+zZs2ratKn9c0ycde+992rbtm0aM2aMvvrqK02dOlU+Pj6qX7++xo4dq8cff9ze9/3331eVKlWUlJSkL7/8UmFhYRoyZIiGDRvm9P6LQoMGDRQX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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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PjaLFy9WcHBwjn1ceez/foXl78qWLavu3btryZIlmjBhgj766COlp6c7bUzKSy+9pPHjx+uRRx7RCy+8oHLlysnFxUWjRo26rqty+XkP5PXUnzHmhmqvX7++WrRooffee08DBgzQe++9J3d3dz3wwAM3tB/gRhB2gEKyePFiSbIHm+rVq0uS3NzcFBkZec3t+/Tpo0mTJunjjz9WUFCQUlNTHb67Jjc1atSQdDls/D045dbG19f3uuq4UXFxcTpw4MB1fbA3atRIjRo10n/+8x99//33at26tebNm6cXX3xRNWrUUFZWln755Zc8P5CrVq0q6fLVgezjK10eDHzo0KEc/XvggQc0c+ZMpaamatmyZapWrZruuOMO+/rsY1OhQoUCH5sBAwaoR48e2rJli5YsWaJmzZqpQYMGBdpnto8++kh33XWX5s+f77A8OTlZgYGB9vm8riIVxnvges5XtgEDBmj06NE6duyY3n//fXXr1s1+pQgoDNzGAgpBbGysXnjhBYWFhal///6SLn+A3nnnnXrzzTd17NixHNtc+ahyvXr11KhRIy1btkzLli1TSEiI/UmavHTq1Ek+Pj6KiYnJ8Xhz9r/AW7RooRo1aujVV191GL+SVx034vDhwxo0aJDc3d01duzYPNulpqbq0qVLDssaNWokFxcXpaenS5J69uwpFxcXTZ48OcfViuy+REZGyt3dXbNmzXK4wjB//nylpKSoW7duDtv16dNH6enpWrRokdasWZPjakJUVJR8fX310ksv5fp49I0cmy5duigwMFBTpkzRxo0bnfqkUalSpXJcUVm+fLl9zFe27O/8+fsTblLhvAeu53xl69evn2w2m0aOHKmDBw/yFBYKHVd2gAJavXq1fv31V126dElJSUmKjY3V2rVrVbVqVa1cudJhoPDs2bPVpk0bNWrUSEOHDlX16tWVlJSkuLg4/fHHHw7fkyJd/nCeMGGCPD09NWTIkFxvmfydr6+vXnvtNT366KO67bbb9OCDD6ps2bLauXOnzp07p0WLFsnFxUVvv/22unTpogYNGmjw4MGqWLGi/vzzT61fv16+vr76/PPPr9nvn376Se+9956ysrKUnJysLVu26OOPP5bNZtPixYuv+s3RsbGxGjFihO6//37Vrl1bly5d0uLFi1WqVCn17t1b0uVbes8995xeeOEFtW3bVr16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Eo0YMUIdO3aUi4uLevfurVmzZt30vgAAgOKpSMPOnXfeKWNMnuttNpsmT56syZMn59mmXLlyev/99wujPAAAYAHFdswOAACAMxB2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRXrsJOZmanx48crLCxMXl5eqlGjhl544QUZY+xtjDGaMGGCQkJC5OXlpcjISO3bt68IqwYAAMVJsQ47U6ZM0dy5c/XGG29o7969mjJliqZOnarXX3/d3mbq1KmaNWuW5s2bp82bN6t06dKKiorShQsXirByAABQXLgWdQFX8/3336tHjx7q1q2bJKlatWr64IMP9OOPP0q6fFVnxowZ+s9//qMePXpIkt59910FBQVpxYoV6tu3b5HVDgAAiodifWWnVatWWrdunX777TdJ0s6dO/Xtt9+qS5cukqRDhw4pMTFRkZGR9m38/PwUHh6uuLi4PPebnp6u1NRUhwkAAFhTsb6yM27cOKWmpqpu3boqVaqUMjMz9d///lf9+/eXJCUmJkqSgoKCHLYLCgqyr8tNTEyMJk2aVHiFAwCAYqNYX9n58MMPtWTJEr3//vv66aeftGjRIr366qtatGhRgfYbHR2tlJQU+3TkyBEnVQwAAIqbYn1lZ+zYsRo3bpx97E2jRo10+PBhxcTEaODAgQoODpYkJSUlKSQkxL5dUlKSmjZtmud+PTw85OHhUai1AwCA4qFYX9k5d+6cXFwcSyxVqpSysrIkSWFhYQoODta6devs61NTU7V582ZFRETc1FoBAEDxVKyv7Nxzzz3673//qypVqqhBgwbavn27pk+frkceeUSSZLPZNGrUKL344ouqVauWwsLCNH78eIWGhqpnz55FWzwAACgWinXYef311zV+/Hg98cQTOn78uEJDQ/XPf/5TEyZMsLd55plndPbsWQ0bNkzJyclq06aN1qxZI09PzyKsHAAAFBfFOuz4+PhoxowZmjFjRp5tbDabJk+erMmTJ9+8wgAAQIlRrMfsAAAAFBRhBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWFq+ws7BgwedXQcAAEChyFfYqVmzpu666y699957unDhgrNrAgAAcJp8hZ2ffvpJjRs31ujRoxUcHKx//vOf+vHHH51dGwAAQIHlK+w0bdpUM2fO1NGjR/XOO+/o2LFjatOmjRo2bKjp06frxIkTzq4TAAAgXwo0QNnV1VW9evXS8uXLNWXKFO3fv19jxoxR5cqVNWDAAB07dsxZdQIAAORLgcLO1q1b9cQTTygkJETTp0/XmDFjdODAAa1du1ZHjx5Vjx49nFUnAABAvrjmZ6Pp06drwYIFio+PV9euXfXuu++qa9eucnG5nJ3CwsK0cOFCVatWzZm1AgAA3LB8hZ25c+fqkUce0aBBgxQSEpJrmwoVKmj+/PkFKg4AAKCg8hV29u3bd8027u7uGjhwYH52DwAA4DT5GrOzYMECLV++PMfy5cuXa9GiRQUuCgAAwFnyFXZiYmIUGBiYY3mFChX00ksvFbgoAAAAZ8lX2ElISFBYWFiO5VWrVlVCQkKBiwIAAHCWfIWdChUqaNeuXTmW79y5UwEBAQUuCgAAwFnyFXb69eunf/3rX1q/fr0yMzOVmZmp2NhYjRw5Un379nV2jQAAAPmWr7DzwgsvKDw8XB07dpSXl5e8vLzUqVMndejQweljdv7880899NBDCggI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aYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgacU67MTExOi2226Tj4+PKlSooJ49eyo+Pt6hzYULFzR8+HAFBASoTJky6t27t5KSkoqoYgAAUNwU67CzceNGDR8+XD/88IPWrl2rjIwMderUSWfPnrW3eeqpp/T5559r+fLl2rhxo44ePapevXoVYdUAAKA4cS3qAq5mzZo1DvMLFy5UhQoVtG3bNrVr104pKSmaP3++3n//fXXo0EGStGDBAtWrV08//PCD7rjjjqIoGwAAFCPFOuxcKSUlRZJUrlw5SdK2bduUkZGhyMhIe5u6deuqSpUqiouLyzPspKenKz093T6fmppaiFVfn7179151fWBgoKpUqXKTqgEAwDpKTNjJysrSqFGj1Lp1azVs2FCSlJiYKHd3d/n7+zu0DQoKUmJiYp77iomJ0aRJkwqz3OuWmfaXZLPpoYceumo7Ty9vxf+6l8ADAMANKjFhZ/jw4dqzZ4++/fbbAu8rOjpao0ePts+npqaqcuXKBd5vfmSlp0nGKKD703ILyL2GjFNHdGrVNJ08eZKwAwDADSoRYWfEiBFatWqVNm3apEqVKtmXBwcH6+LFi0pOTna4upOUlKTg4OA89+fh4SEPD4/CLPmGuQVUlkdwzaIuAwAAyynWT2MZYzRixAh9+umnio2NVVhYmMP6Fi1ayM3NTevWrbMvi4+PV0JCgiIiIm52uQAAoBgq1ld2hg8frvfff1+fffaZfHx87ONw/Pz85OXlJT8/Pw0ZMkSjR49WuXLl5OvrqyeffFIRERE8iQUAACQV87Azd+5cSdKdd97psHzBggUaNGiQJOm1116Ti4uLevfurfT0dEVFRWnOnDk3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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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Hh5unnjiCafbSY3hfJSXos6DJJOQkODoU17vT+vXrzctW7Y0np6epm7duk77wLXPRUpKirnvvvtM9erVjd1uN/Xr1zeTJk1y+h4ZY9zvXNj+7+AAAAAshzkyAADAsggyAADAsggyAADAsggyAADAsggyAADAsggyAADAsggyAADAsggyAG5JS5cuLfSLywCshyADwGHIkCHq3bt3mbe3Ujjo37+/fv75Z1eXAeB3quTqAgDAFby9vflVZOAmwBUZACU2b948NW/eXD4+PgoLC9NTTz2lrKwsSdKGDRs0dOhQZWRkyGazyWazafr06ZKknJwcTZw4Ubfddpt8fHzUpk0bbdiwwTFuwZWczz//XE2aNFGVKlXUrVs3HT161Gn/b7zxhpo2bSq73a6QkBCNHj1akvT4448rJibGqW9ubq5q1qypJUuWFHksV149mj59ulq2bKm33npLderUkZ+fnwYMGKAzZ84U+3wUbHO5BQsWqE6dOo7HGzZs0D333CMfHx/5+/urXbt2OnToULFjAigdggyAEqtQoYJefvll/fjjj1q2bJnWrVunyZMnS5Latm2rBQsWyNfXV0ePHtXRo0c1ceJESdLo0aOVlJSkFStW6IcfftBDDz2kbt26ae/evY6xz507p//+7//WW2+9pa+++kopKSmO7SVp0aJFGjVqlEaMGKGdO3fqo48+Uv369SVJw4cP15o1a5yCzyeffKJz586pf//+JT6+/fv3a/Xq1frkk0/0ySef6Msvv9SsWbPK/HxdvHhRvXv3VseOHfXDDz8oKSlJI0aMkM1mK/OYAK5w3X6OEoDlDB482PTq1avE/VeuXGkCAgIcjxMSEoyfn59Tn0OHDpmKFSua3377zam9S5cuJjY21rGdJKdfbI+PjzdBQUGOx6GhoebZZ58ttpbbb7/dzJ492/G4Z8+eZsiQIcX2v7LWadOmmcqVK5vMzExH26RJk0ybNm2KHWPatGnmjjvucGqbP3++CQ8PN8Zc+gVtSWbDhg3FjgHg92GODIASW7t2reLi4rRnzx5lZmbq4sWLys7O1rlz51S5cuUit9m5c6fy8vLUsGFDp/acnBwFBAQ4HleuXFn16tVzPA4JCdGxY8ckSceOHdORI0fUpUuXYmsbPny4Xn/9dU2ePFlpaWn67LPPtG7dulIdX506dVS1atUiayiL6tWra8iQIYqOjtYf/vAHRUVF6eGHH1ZISEiZxwTgjI+WAJTIL7/8opiYGLVo0UL/+7//q61btyo+Pl6SdOHChWK3y8rKUsWKFbV161Zt377dsezevVsvvfSSo5+Hh4fTdjabTcYYSSrRpNxBgwbpwIEDSkpK0j//+U9FRESoQ4cOpTrGomrIz88vtn+FChUcNRbIzc11epyQkKCkpCS1bdtW7777rho2bKhNmzaVqi4AxeOKDIAS2bp1q/Lz8zV37lxVqHDp/0DvvfeeUx9PT0/l5eU5td15553Ky8vTsWPHSh0sClStWlV16tRRYmKiOnXqVGSfgIAA9e7d2xEchg4dWqZ9lUaNGjWUmpoqY4xj3sv27dsL9bvzzjt15513KjY2VpGRkXr77bd17733Xvf6gFsBQQaAk4yMjEL/GAcEBKh+/frKzc3VK6+8op49e+qbb77R4sWLnfrVqVNHWVlZSkxM1B133KHKlSurYcOGGjhwoAYNGqS5c+fqzjvv1PHjx5WYmKgWLVqoR48eJapr+vTpGjlypGrWrKnu3bvrzJkz+uabbzRmzBhHn+HDhysmJkZ5eXkaPHjw734uruX+++/X8ePHNWfOHP3xj3/UmjVr9Nlnn8nX11eSdPDgQb3++ut68MEHFRoaquTkZO3du1eDBg267rUBtwo+WgLgZMOGDY4rCAXLjBkzdMcdd2jevHmaPXu2mjVrpuXLlysuLs5p27Zt22rkyJHq37+/atSooTlz5ki69PHKoEGDNGHCBDVq1Ei9e/fWd999p9q1a5e4rsGDB2vBggVauHChmjZtqpiYGKe7niQpKipKISEhio6OVmho6O9/Mq6hSZMmWrhwoeLj43XHHXfo22+/dbrTqnLlytqzZ4/69eunhg0basSIERo1apT+/Oc/X/fagFuFzVz5AS8AWFRWVpZuu+02JSQkqG/fvq4uB8ANwEdLACwvPz9fJ06c0Ny5c+Xv768HH3zQ1SUBuEEIMgAsLyUlRREREapVq5aWLl2qSpV4awNuFXy0BAAALIvJvgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLIIMgAAwLL+H4cMownkCaiHAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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zdKCBQs0ZsyYi9Z4uQ/Jq1KlSontxpjLev3FZGVlqXv37vL29tYLL7yghg0bytPTU99++63+/ve/l/psoD8rKipSq1atNHPmzBK3h4SEOKyX53hGjBihhIQEffXVV2rVqpU+/vhjPfbYYw6hG6iICDKAEy1ZskRubm567733iv1R2rx5s+bOnavU1NQS/8/7PDc3N7Vu3VopKSnKzMxUUFDQNau3ffv22rRpk9LS0hQWFqaGDRsqNze3xGfeXMjd3V39+vVTv379VFRUpMcee0xvvvmmnn32WfsZlVq1amnUqFEaNWqUcnNzdeutt+r5558vNcicD1MpKSlq3ry5vT0jI0NZWVn2icvXw8aNG3XixAl99NFHuvXWW+3tf7477bzSglfDhg21a9cu9ezZs1yeYFy7dm15e3tr7969l+x75513qnbt2lqyZIk6duyo06dP64EHHrjqGoBrjagNONGSJUvUrVs3DR48WPfee6/D8uSTT0qS/dbXlJQUpaamFttHVlaWtm7dqpo1a5Z6SeJKpKen64cffijWnp+fr8TERIdLOffff7+2bt2qtWvXlljX2bNnJcl+yew8FxcX+yWj87cVX9inevXqatSoUbHbjv/srrvukqRiT8k9f0ajT58+pb62vJ0Pon8+G5Kfn6958+YV61utWrUSLzXdf//9OnLkiN5+++1i2/744w+dOnXqimpycXHRgAED9Mknn2jHjh3Ftv+5VldXVw0dOtR+Zq9Vq1YXvawHVBSckQGcZPv27frpp59Kfex93bp1dcstt2jJkiX6+9//rl27dulvf/ubevfurW7duqlWrVo6cuSIFi9erKNHj2r27NnFzuqsXr26xEmmnTt3VoMGDUo87q+//qoOHTqoR48e6tmzp4KCgnTs2DF98MEH2rVrlyZMmCB/f39J0pNPPqmPP/5Yffv2td/GfOrUKe3Zs0cffvihfvnlF/n7+2vMmDH67bff1KNHD9WrV0+HDh3SG2+8oZtvvtl+JuWmm27Sbbfdpnbt2qlWrVrasWOHPvzww4t+LUCbNm0UFRWlt956y35p5+uvv9bixYs1YMAA3X777Zf1WVyuHTt26KWXXirWftttt6lz586qWbOmoqKi9MQTT8hms+m9994r8TJPu3bt9K9//UsxMTH6y1/+ourVq6tfv3564IEHtHz5cj3yyCPasGGD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nj21Z88e7dy50760b99ew4YNs//bzc3N4VJVcnKyUlNTFRERUZayAQBAJVOmS0szZsxQr169dNNNN+nMmTP629/+ppSUFPn7++uDDz64rH3UqFFDLVu2dGirVq2a/Pz87O2jR49WTEyMatWqJW9vbz3++OOKiIhQp06dylI2AACoZMoUZOrVq6ddu3Zp2bJl2r17t3JzczV69GgNGzbMYfLv1Zo1a5ZcXFw0aNAg5eXlqVevXpo3b1657R8AAFhbmYKMJLm6umr48OHlWYs2btzosO7p6am4uDjFxcWV63EAAEDlUKYg8+677150+4gRI8pUDAAAwJUoU5AZP368w3pBQYFOnz4td3d3Va1alSADAACuizLdtfT77787LLm5uUpOTlbXrl0ve7IvAADA1Srzdy1dqHHjxpo+fXqxszUAAADXSrkFGencBOCjR4+W5y4BAABKVaY5Mh9//LHDujFGaWlp+u///m916dKlXAoDAAC4lDIFmQEDBjis22w21a5dWz169NCMGTPKoy4AAIBLKlOQKSoqKu86AAAArli5zpEBAAC4nsp0RiYmJuay+86cObMshwAAALikMgWZ7777Tt99950KCgrUtGlTSdL+/ftVpUoV3XLLLfZ+NputfKoEAAAoQZmCTL9+/VSjRg0tXrxYNWvWlHTuIXmjRo1St27dNGnSpHItEgAAoCRlmiMzY8YMxcbG2kOMJNWsWVMvvfQSdy0BAIDrpkxBJicnR8ePHy/Wfvz4cZ08efKqiwIAALgcZQoy99xzj0aNGqWPPvpIv/76q3799Vf97//+r0aPHq2BAweWd40AAAAlKtMcmQULFmjy5Mn629/+poKCgnM7cnXV6NGj9frrr5drgQAAAKUpU5CpWrWq5s2bp9dff10///yzJKlhw4aqVq1auRYHAABwMVf1QLy0tDSlpaWpcePGqlatmowx5VUXAADAJZUpyJw4cUI9e/ZUkyZNdNdddyktLU2SNHr0aG69BgAA102ZgszEiRPl5uam1NRUVa1a1d4+ePBgrVmzptyKAwAAuJgyzZH5z3/+o7Vr16pevXoO7Y0bN9ahQ4fKpTAAAIBLKdMZmVOnTjmciTnvt99+k4eHx1UXBQAAcDnKFGS6deumd999175us9lUVFSk1157Tbfffnu5FQcAAHAxZbq09Nprr6lnz57asWOH8vPzNWXKFH3//ff67bfftGXLlvKuEQAAoERlOiPTsmVL7d+/X127dlX//v116tQpDRw4UN99950aNmxY3jUCAACU6IrPyBQUFOjOO+/UggUL9PTTT1+LmgAAAC7LFZ+RcXNz0+7du69FLQAAAFekTJeWhg8froULF5Z3LQAAAFekTJN9z549q3feeUeff/652rVrV+w7lmbOnFkuxQEAAFzMFQWZAwcOqH79+tq7d69uueUWSdL+/fsd+thstvKrDgAA4CKuKMg0btxYaWlp2rBhg6RzX0kwd+5cBQYGXpPiAAAALuaK5shc+O3Wq1ev1qlTp8q1IAAAgMtVpsm+510YbAAAAK6nKwoyNput2BwY5sQAAABnuaI5MsYYjRw50v7FkGfOnNEjjzxS7K6ljz76qPwqBAAAKMUVBZmoqCiH9eHDh5drMQAAAFfiioJMfHz8taoDAADgil3VZN+rNX/+fLVu3Vre3t7y9vZWRESEVq9ebd9+5swZRUdHy8/PT9WrV9egQYOUkZHhxIoBAEBF4tQgU69ePU2fPl1JSUnasWOHevToof79++v777+XJE2cOFGffPKJEhIStGnTJh09elQDBw50ZskAAKACKdNXFJSXfv36Oay//PLLmj9/vrZt26Z69epp4cKFWrp0qXr06CHp3KWt5s2ba9u2berUqZMzSgYAABWIU8/I/FlhYaGWLVumU6dOKSIiQklJSSooKFBkZKS9T7NmzRQaGqqtW7eWup+8vDzl5OQ4LAAAoHJyepDZs2ePqlevLg8PDz3yyCNasWKFbrrpJqWnp8vd3V2+vr4O/QMDA5Wenl7q/mJjY+Xj42NfQkJCrvEIAACAszg9yDRt2lQ7d+7U9u3b9eijjyoqKko//PBDmfc3depUZWdn25fDhw+XY7UAAKAiceocGUlyd3dXo0aNJEnt2rXTN998ozlz5mjw4MHKz89XVlaWw1mZjIwMBQUFlbo/Dw8P+wP7AABA5eb0MzIXKioqUl5entq1ayc3NzclJibatyUnJys1NVURERFOrBAAAFQUTj0jM3XqVPXu3VuhoaE6efKkli5dqo0bN2rt2rXy8fHR6NGjFRMTo1q1asnb21uPP/64IiIiuGMJAABIcnKQOXbsmEaMGKG0tDT5+PiodevWWrt2rf76179KkmbNmiUXFxcNGjRIeXl56tWrl+bNm+fMkgEAQAXi1CCzcOHCi2739PRUXFyc4uLirlNFAADASircHBkAAIDLRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACWRZABAACW5dQgExsbq7/85S+qUaOGAgICNGDAACUnJzv0OXPmjKKjo+Xn56fq1atr0KBBysjIcFLFAACgInFqkNm0aZOio6O1bds2rVu3TgUFBbrjjjt06tQpe5+JEyfqk08+UUJCgjZt2qSjR49q4MCBTqwaAABUFK7OPPiaNWsc1hctWqSAgAAlJSXp1ltvVXZ2thYuXKilS5eqR48ekqT4+Hg1b95c27ZtU6dOnZxRNgAAqCAq1ByZ7OxsSVKtWrUkSUlJSSooKFBkZKS9T7NmzRQaGqqtW7c6pUYAAFBxOPWMzJ8VFRVpwoQJ6tKli1q2bClJSk9Pl7u7u3x9fR36BgYGKj09vcT95OXlKS8vz76ek5NzzWoGAADOVWHOyERHR2vv3r1atmzZVe0nNjZWPj4+9iUkJKScKgQAABVNhQgy48aN06pVq7RhwwbVq1fP3h4UFKT8/HxlZWU59M/IyFBQUFCJ+5o6daqys7Pty+HDh69l6QAAwImcGmSMMRo3bpxWrFih9evXKzw83GF7u3bt5ObmpsTERHtbcnKyUlNTFRERUeI+PTw85O3t7bAAAIDKyalzZKKjo7V06VL9+9//Vo0aNezzXnx8fOTl5SUfHx+NHj1aMTExqlWrlry9vfX4448rIiKCO5YAAIBzg8z8+fMlSbfddptDe3x8vEaOHClJmjVrllxcXDRo0CDl5eWpV69emjdv3nWuFAAAVERODTLGmEv28fT0VFxcnOLi4q5DRQAAwEoqxGRfAACAsiDIAAAAyyLIAAAAyyLIAAAAyyLIAAAAyyLIAAAAyyLIAAAAyyLIAAAAyyLIAAAAyyLIAAAAyyLIAAAAyyLIAAAAyyLIAAAAyyLIAAAA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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import os\n", - "import sys\n", - "import re\n", - "from datetime import datetime\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "\n", - "# if len(sys.argv) != 2:\n", - "# print(\"Usage: python script.py /path/to/your/directory\")\n", - "# sys.exit(1)\n", - " \n", - "# directory_path = sys.argv[1]\n", - "\n", - "directory_path = \"/Users/fwmm/Downloads/logs\"\n", - "\n", - "\n", - "\n", - "class Commissioning:\n", - " \n", - " date_pattern = r'\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d+'\n", - " \n", - " #step_type = [\n", - " # \"Performing\", \n", - " # \"Successfully\"\n", - " #]\n", - " \n", - " #step_name = [\n", - " # \"ReadCommissioningInfo\",\n", - " # \"ReadCommissioningInfo2\",\n", - " # \"ArmFailSafe\",\n", - " # \"ConfigRegulatory\",\n", - " # \"ConfigureUTCTime\",\n", - " # \"SendPAICertificateRequest\",\n", - " # \"SendDACCertificateRequest\",\n", - " # \"SendAttestationRequest\",\n", - " # \"AttestationVerification\",\n", - " # \"SendOpCertSigningRequest\",\n", - " # \"ValidateCSR\",\n", - " # \"GenerateNOCChain\",\n", - " # \"SendTrustedRootCert\",\n", - " # \"SendNOC\",\n", - " # \"FindOperational\",\n", - " # \"SendComplete\",\n", - " # \"Cleanup\", \n", - " #]\n", - "\n", - " stages = {\n", - " 'discovery': {'begin': '(?=.*Internal\\\\ Control\\\\ start\\\\ simulated\\\\ app)',\n", - " 'end': '(?=.*Discovered\\\\ Device)'},\n", - " 'readCommissioningInfo': {'begin': '(?=.*ReadCommissioningInfo)(?=.*Performing)',\n", - " 'end': '(?=.*ReadCommissioningInfo)(?=.*Successfully)'},\n", - " 'PASE': {'begin': '(?=.*PBKDFParamRequest)',\n", - " 'end': \"(?=.*'kEstablishing'\\\\ \\\\-\\\\->\\\\ 'kActive')\"},\n", - " 'cleanup': {'begin': '(?=.*Cleanup)(?=.*Performing)',\n", - " 'end': '(?=.*Cleanup)(?=.*Successfully)'}\n", - " }\n", - " \n", - " def __init__(self):\n", - " self.commissioning = {}\n", - " \n", - " def __repr__(self):\n", - " return self.commissioning.__repr__()\n", - " \n", - " \n", - " def add_event(self, line:str): \n", - " for stage, patterns in self.stages.items():\n", - " begin = None\n", - " end = None\n", - " if not(stage in self.commissioning):\n", - " self.commissioning[stage] = {}\n", - " \n", - " #pattern_begin = f\"(?=.*{re.escape(stage)})(?=.*{re.escape(self.step_type[0])})\"\n", - " if re.search(patterns['begin'], line) is not None: \n", - " match = re.findall(self.date_pattern, line)\n", - " if match[0]:\n", - " begin = datetime.strptime(match[0], '%Y-%m-%d %H:%M:%S.%f')\n", - " if (stage == \"discovery\"):\n", - " self.commissioning[\"begin\"] = begin\n", - " self.commissioning[stage][\"begin\"] = begin\n", - " \n", - " #pattern_end = f\"(?=.*{re.escape(stage)})(?=.*{re.escape(self.step_type[1])})\" \n", - " if re.search(patterns['end'], line) is not None:\n", - " match = re.findall(self.date_pattern, line)\n", - " if match[0]:\n", - " end = datetime.strptime(match[0], '%Y-%m-%d %H:%M:%S.%f')\n", - " if (stage == \"cleanup\"):\n", - " self.commissioning[\"end\"] = end\n", - " self.commissioning[stage][\"end\"] = end\n", - "\n", - "# List all files in the specified directory\n", - "files = os.listdir(directory_path)\n", - "\n", - "commissioning_list = []\n", - "\n", - "for file_name in files:\n", - " file_path = os.path.join(directory_path, file_name)\n", - " commissioning_obj: Commissioning = None\n", - " if os.path.isfile(file_path):\n", - " # Open and read the file\n", - " with open(file_path, 'r') as file:\n", - " for line in file:\n", - " line = line.strip()\n", - " pattern_begin = f\"(?=.*{re.escape('Begin Commission')})\"\n", - " pattern_end = f\"(?=.*{re.escape('Internal Control stop simulated app')})\"\n", - " if re.search(pattern_begin, line) is not None:\n", - " commissioning_obj = Commissioning()\n", - " continue\n", - " \n", - " \n", - " elif re.search(pattern_end, line) is not None:\n", - " if commissioning_obj is not None:\n", - " commissioning_list.append(commissioning_obj)\n", - " continue\n", - " \n", - " elif commissioning_obj is not None:\n", - " commissioning_obj.add_event(line)\n", - " \n", - "durations = []\n", - "read_durations = []\n", - "discovery_durations = []\n", - "PASE_durations = []\n", - "for commissioning in commissioning_list:\n", - " begin = int(commissioning.commissioning[\"begin\"].timestamp() * 1000000)\n", - " end = int(commissioning.commissioning[\"end\"].timestamp() * 1000000)\n", - " \n", - " read_begin = int(commissioning.commissioning[\"readCommissioningInfo\"][\"begin\"].timestamp() * 1000000)\n", - " read_end = int(commissioning.commissioning[\"readCommissioningInfo\"][\"end\"].timestamp() * 1000000)\n", - "\n", - " discovery_begin = int(commissioning.commissioning[\"discovery\"][\"begin\"].timestamp() * 1000000)\n", - " discovery_end = int(commissioning.commissioning[\"discovery\"][\"end\"].timestamp() * 1000000)\n", - "\n", - " PASE_begin = int(commissioning.commissioning[\"PASE\"][\"begin\"].timestamp() * 1000000)\n", - " PASE_end = int(commissioning.commissioning[\"PASE\"][\"end\"].timestamp() * 1000000)\n", - " \n", - " duration = end - begin #+ random.randint(1, 20)\n", - " read_duration = read_end - read_begin\n", - " discovery_duration = discovery_end - discovery_begin\n", - " PASE_duration = PASE_end - PASE_begin\n", - " #print(f\"Commission duration: {duration}\")\n", - " #print(f\"ReadCommissioningInfo duration: {read_duration}\")\n", - " #break # Just get one sample\n", - " durations.append(duration)\n", - " read_durations.append(read_duration)\n", - " discovery_durations.append(discovery_duration)\n", - " PASE_durations.append(PASE_duration)\n", - " #read_durations += read_duration\n", - "\n", - "np_durations = np.array(durations)\n", - "durations_99p = np.percentile(np_durations, 99)\n", - "np_discoveries = np.array(discovery_durations)\n", - "discoveries_99p = np.percentile(np_discoveries, 99)\n", - "np_reads = np.array(read_durations)\n", - "reads_99p = np.percentile(np_reads, 99)\n", - "np_pases = np.array(PASE_durations)\n", - "pases_99p = np.percentile(np_pases, 99)\n", - "print(f\"Total Commissioning 99-percentile: {durations_99p}\")\n", - "print(f\"Discovery Latency 99-percentile: {discoveries_99p}\")\n", - "print(f\"Read Commissioning Info Latency 99-percentile: {reads_99p}\")\n", - "print(f\"Pase Latency 99-percentile: {pases_99p}\\n\")\n", - "\n", - "plt.hist(durations, bins=50, edgecolor='black')\n", - "plt.xlabel('TIme in us')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Total Commissioning Time')\n", - "\n", - "# Show the plot\n", - "plt.show()\n", - "\n", - "plt.hist(discovery_durations, bins=50, edgecolor='black')\n", - "plt.xlabel('Latency in us')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Device Discovery Latency')\n", - "\n", - "# Show the plot\n", - "plt.show()\n", - "\n", - "plt.hist(read_durations, bins=50, edgecolor='black')\n", - "plt.xlabel('Latency in us')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Read Commissioning Info Latency')\n", - "\n", - "# Show the plot\n", - "plt.show()\n", - "\n", - "plt.hist(PASE_durations, bins=50, edgecolor='black')\n", - "plt.xlabel('Latency in us')\n", - "plt.ylabel('Frequency')\n", - "plt.title('PASE Session Latency')\n", - "\n", - "# Show the plot\n", - "plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "742599ff-4477-408f-8969-8fc3ab93d650", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/test_collections/matter/sdk_tests/support/python_testing/models/rpc_client/test_harness_client.py b/test_collections/matter/sdk_tests/support/python_testing/models/rpc_client/test_harness_client.py index 0181f054..f2d16a3b 100644 --- a/test_collections/matter/sdk_tests/support/python_testing/models/rpc_client/test_harness_client.py +++ b/test_collections/matter/sdk_tests/support/python_testing/models/rpc_client/test_harness_client.py @@ -25,10 +25,10 @@ from chip.testing.matter_testing import ( CommissionDeviceTest, MatterTestConfig, + TestStep, get_test_info, parse_matter_test_args, run_tests, - TestStep ) COMMISSION_ARGUMENT = "commission"