{
  "_class" : "hudson.matrix.MatrixBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "EMAIL_NOTIFICATIONS",
          "value" : "jenkins-notifications@lists.osmocom.org laforge@gnumonks.org"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 950086,
      "executingTimeMillis" : 950086,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 9078,
      "waitingTimeMillis" : 9078
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/pmaier/fixgr" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2045,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "e5f56dd35f1b2347a59f88b401b59997798fff67",
            "branch" : [
              {
                "SHA1" : "e5f56dd35f1b2347a59f88b401b59997798fff67",
                "name" : "refs/remotes/origin/pmaier/fixgr"
              }
            ]
          },
          "revision" : {
            "SHA1" : "e5f56dd35f1b2347a59f88b401b59997798fff67",
            "branch" : [
              {
                "SHA1" : "e5f56dd35f1b2347a59f88b401b59997798fff67",
                "name" : "refs/remotes/origin/pmaier/fixgr"
              }
            ]
          }
        },
        "refs/remotes/origin/pmaier/rcp" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2131,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "ba01cb7afffa0141e4e9476d566366801773c416",
            "branch" : [
              {
                "SHA1" : "ba01cb7afffa0141e4e9476d566366801773c416",
                "name" : "refs/remotes/origin/pmaier/rcp"
              }
            ]
          },
          "revision" : {
            "SHA1" : "ba01cb7afffa0141e4e9476d566366801773c416",
            "branch" : [
              {
                "SHA1" : "ba01cb7afffa0141e4e9476d566366801773c416",
                "name" : "refs/remotes/origin/pmaier/rcp"
              }
            ]
          }
        },
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2189,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "b5ba274583cf9988fe266aa5a75f575df8751135",
            "branch" : [
              {
                "SHA1" : "b5ba274583cf9988fe266aa5a75f575df8751135",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "b5ba274583cf9988fe266aa5a75f575df8751135",
            "branch" : [
              {
                "SHA1" : "b5ba274583cf9988fe266aa5a75f575df8751135",
                "name" : "origin/master"
              }
            ]
          }
        },
        "refs/remotes/origin/pmaier/ara-m" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1320,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "8f289234f74045496c3752bf1bb9397302f3e912",
            "branch" : [
              {
                "SHA1" : "8f289234f74045496c3752bf1bb9397302f3e912",
                "name" : "refs/remotes/origin/pmaier/ara-m"
              }
            ]
          },
          "revision" : {
            "SHA1" : "8f289234f74045496c3752bf1bb9397302f3e912",
            "branch" : [
              {
                "SHA1" : "8f289234f74045496c3752bf1bb9397302f3e912",
                "name" : "refs/remotes/origin/pmaier/ara-m"
              }
            ]
          }
        },
        "refs/remotes/origin/pmaier/keepfiles" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1353,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "3d815859830197b9c55e0a49a1bd2532f71285e1",
            "branch" : [
              {
                "SHA1" : "3d815859830197b9c55e0a49a1bd2532f71285e1",
                "name" : "refs/remotes/origin/pmaier/keepfiles"
              }
            ]
          },
          "revision" : {
            "SHA1" : "3d815859830197b9c55e0a49a1bd2532f71285e1",
            "branch" : [
              {
                "SHA1" : "3d815859830197b9c55e0a49a1bd2532f71285e1",
                "name" : "refs/remotes/origin/pmaier/keepfiles"
              }
            ]
          }
        },
        "refs/remotes/origin/pmaier/fixapdu" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1421,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "568e8ae9b817ec2473907bfdd30870410890ffb0",
            "branch" : [
              {
                "SHA1" : "568e8ae9b817ec2473907bfdd30870410890ffb0",
                "name" : "refs/remotes/origin/pmaier/fixapdu"
              }
            ]
          },
          "revision" : {
            "SHA1" : "568e8ae9b817ec2473907bfdd30870410890ffb0",
            "branch" : [
              {
                "SHA1" : "568e8ae9b817ec2473907bfdd30870410890ffb0",
                "name" : "refs/remotes/origin/pmaier/fixapdu"
              }
            ]
          }
        },
        "refs/remotes/origin/pmaier/aramtest" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1467,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6",
            "branch" : [
              {
                "SHA1" : "6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6",
                "name" : "refs/remotes/origin/pmaier/aramtest"
              }
            ]
          },
          "revision" : {
            "SHA1" : "6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6",
            "branch" : [
              {
                "SHA1" : "6a555ac5ccad9ee2cae5e0ba247990f824f8e9b6",
                "name" : "refs/remotes/origin/pmaier/aramtest"
              }
            ]
          }
        },
        "refs/remotes/origin/osmith/wip" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1816,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "e4ea1c997348370ba1d7415bfd926ac873b58c87",
            "branch" : [
              {
                "SHA1" : "e4ea1c997348370ba1d7415bfd926ac873b58c87",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          },
          "revision" : {
            "SHA1" : "e4ea1c997348370ba1d7415bfd926ac873b58c87",
            "branch" : [
              {
                "SHA1" : "e4ea1c997348370ba1d7415bfd926ac873b58c87",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          }
        },
        "refs/remotes/origin/pmaier/otatest" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2022,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "f57f047c627392c40fbe349b1a73ccebe05dc005",
            "branch" : [
              {
                "SHA1" : "f57f047c627392c40fbe349b1a73ccebe05dc005",
                "name" : "refs/remotes/origin/pmaier/otatest"
              }
            ]
          },
          "revision" : {
            "SHA1" : "f57f047c627392c40fbe349b1a73ccebe05dc005",
            "branch" : [
              {
                "SHA1" : "f57f047c627392c40fbe349b1a73ccebe05dc005",
                "name" : "refs/remotes/origin/pmaier/otatest"
              }
            ]
          }
        },
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 402,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "4f888a0414101dee4f20aa12579491fcc71707b3",
            "branch" : [
              {
                "SHA1" : "4f888a0414101dee4f20aa12579491fcc71707b3",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "4f888a0414101dee4f20aa12579491fcc71707b3",
            "branch" : [
              {
                "SHA1" : "4f888a0414101dee4f20aa12579491fcc71707b3",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "b5ba274583cf9988fe266aa5a75f575df8751135",
        "branch" : [
          {
            "SHA1" : "b5ba274583cf9988fe266aa5a75f575df8751135",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/pysim"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#2189",
  "duration" : 950086,
  "estimatedDuration" : 937180,
  "executor" : None,
  "fullDisplayName" : "master-pysim #2189",
  "id" : "2189",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 2189,
  "queueId" : 149472,
  "result" : "SUCCESS",
  "timestamp" : 1782115509521,
  "url" : "https://jenkins.osmocom.org/jenkins/view/no-generated/job/master-pysim/2189/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim/esim/saip/personalization.py"
        ],
        "commitId" : "a7c762eb2e2d7b617f99f2637a1e07d6fcb21c99",
        "timestamp" : 1781987378000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "ConfigurableParameter: do not magically overwrite the 'name' attribute\u000a\u000aThe ClassVarMeta metaclass used to derive each ConfigurableParameter's\u000a'name' attribute automatically from the Python class name (via\u000acamel_to_snake()).  Stop doing this, for three reasons:\u000a\u000a1) Python class names follow constraints that do not fit the naming\u000a   commonly used in CSV files.  For example, a name like\u000a   \"5GS-SUCI-CalcInfo\" starts with a digit and contains dashes,\u000a   neither of which is permissible in a class name.\u000a\u000a2) Python class names live in their own namespace, distinct from the\u000a   one used to present eSIM parameters to end users.  Deriving the UI\u000a   name from the class name couples these two namespaces together.\u000a\u000a   Taken together, (1) and (2) mean that automatic naming both imposes\u000a   class-name constraints on the user-visible names and merges the\u000a   internal Python namespace with the publicly shown one - a layer\u000a   violation from the perspective of UI design.\u000a\u000a3) Overriding 'name' from __new__() makes manual naming impossible: a\u000a   subclass that sets 'name = \"bar\"' as a class attribute would still\u000a   end up with the value computed by the metaclass, which is\u000a   surprising and hard to track down:\u000a\u000a       class MySuper(metaclass=...):  # __new__ sets name = 'foo'\u000a           ...\u000a       class MySub(MySuper):\u000a           name = 'bar'\u000a       print(MySub().name)  # 'foo', not 'bar' as one would expect\u000a\u000aChange-Id: I6f631444c6addeb7ccc5f6c55b9be3dc83409169\u000aJenkins: skip-card-test\u000a",
        "date" : "2026-06-21 03:29:38 +0700",
        "id" : "a7c762eb2e2d7b617f99f2637a1e07d6fcb21c99",
        "msg" : "ConfigurableParameter: do not magically overwrite the 'name' attribute",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim/esim/saip/personalization.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tests/unittests/test_configurable_parameters.py",
          "tests/unittests/xo/test_configurable_parameters",
          "tests/unittests/smdpp_data",
          "pySim/esim/saip/personalization.py"
        ],
        "commitId" : "3974e9693301d23104bae4a995cb22639ac5e0c2",
        "timestamp" : 1781987402000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "add test_configurable_parameters.py\u000a\u000aAdd ConfigurableParameterTest, which applies each parameter to a real\u000aUPP DER template and reads it back, comparing results against a stored\u000aexpected-output snapshot (xo/test_configurable_parameters).\u000a\u000aAdd TestValidateVal covering validate_val() for Iccid, Imsi, Pin1, Puk1\u000aand K, testing both valid inputs and invalid ones expected to raise\u000aValueError.\u000a\u000aAdd TestEnumParam covering the EnumParam methods (validate_val,\u000amap_name_to_val, map_val_to_name, name_normalize, clean_name_str) using\u000aAlgorithmID as the concrete subclass, including fuzzy name matching.\u000a\u000aAlso add get_value_from_pes() to ConfigurableParameter as a convenience\u000awrapper around get_values_from_pes() that asserts all returned values\u000aare identical and returns the single result.\u000a\u000aChange-Id: Ia55f0d11f8197ca15a948a83a34b3488acf1a0b4\u000aCo-authored-by: Vadim Yanitskiy <vyanitskiy@sysmocom.de>\u000aJenkins: skip-card-test\u000a",
        "date" : "2026-06-21 03:30:02 +0700",
        "id" : "3974e9693301d23104bae4a995cb22639ac5e0c2",
        "msg" : "add test_configurable_parameters.py",
        "paths" : [
          {
            "editType" : "add",
            "file" : "tests/unittests/test_configurable_parameters.py"
          },
          {
            "editType" : "add",
            "file" : "tests/unittests/xo/test_configurable_parameters"
          },
          {
            "editType" : "add",
            "file" : "tests/unittests/smdpp_data"
          },
          {
            "editType" : "edit",
            "file" : "pySim/esim/saip/personalization.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tests/unittests/test_configurable_parameters.py",
          "tests/unittests/xo/test_configurable_parameters",
          "pySim/esim/saip/personalization.py"
        ],
        "commitId" : "ef0a2fcb375d3715d68d6f7f61e70c65e4dc4891",
        "timestamp" : 1781987402000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "personalization.ConfigurableParameter: fix BytesIO() input\u000a\u000aChange-Id: I0ad160eef9015e76eef10baee7c6b606fe249123\u000aJenkins: skip-card-test\u000a",
        "date" : "2026-06-21 03:30:02 +0700",
        "id" : "ef0a2fcb375d3715d68d6f7f61e70c65e4dc4891",
        "msg" : "personalization.ConfigurableParameter: fix BytesIO() input",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tests/unittests/xo/test_configurable_parameters"
          },
          {
            "editType" : "edit",
            "file" : "tests/unittests/test_configurable_parameters.py"
          },
          {
            "editType" : "edit",
            "file" : "pySim/esim/saip/personalization.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tests/unittests/test_configurable_parameters.py",
          "tests/unittests/xo/test_configurable_parameters",
          "pySim/esim/saip/personalization.py"
        ],
        "commitId" : "bfdfcad22cb124bdd97e132396bb72ec1b20c412",
        "timestamp" : 1781987402000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "personalization: add int as input type for BinaryParameter\u000a\u000aChange-Id: I31d8142cb0847a8b291f8dc614d57cb4734f0190\u000aJenkins: skip-card-test\u000a",
        "date" : "2026-06-21 03:30:02 +0700",
        "id" : "bfdfcad22cb124bdd97e132396bb72ec1b20c412",
        "msg" : "personalization: add int as input type for BinaryParameter",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tests/unittests/test_configurable_parameters.py"
          },
          {
            "editType" : "edit",
            "file" : "pySim/esim/saip/personalization.py"
          },
          {
            "editType" : "edit",
            "file" : "tests/unittests/xo/test_configurable_parameters"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pySim/esim/saip/param_source.py"
        ],
        "commitId" : "4307cffc8223260012509a3e231b70e6a7dc24fe",
        "timestamp" : 1781987402000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "param_source: allow plugging a random implementation (for testing)\u000a\u000aChange-Id: Idce2b18af70c17844d6f09f7704efc869456ac39\u000aJenkins: skip-card-test\u000a",
        "date" : "2026-06-21 03:30:02 +0700",
        "id" : "4307cffc8223260012509a3e231b70e6a7dc24fe",
        "msg" : "param_source: allow plugging a random implementation (for testing)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "pySim/esim/saip/param_source.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tests/unittests/test_param_src.py",
          "tests/unittests/xo/test_param_src"
        ],
        "commitId" : "b5ba274583cf9988fe266aa5a75f575df8751135",
        "timestamp" : 1781987402000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "add test_param_src.py\u000a\u000aChange-Id: I03087b84030fddae98b965e0075d44e04ec6ba5c\u000aJenkins: skip-card-test\u000a",
        "date" : "2026-06-21 03:30:02 +0700",
        "id" : "b5ba274583cf9988fe266aa5a75f575df8751135",
        "msg" : "add test_param_src.py",
        "paths" : [
          {
            "editType" : "add",
            "file" : "tests/unittests/xo/test_param_src"
          },
          {
            "editType" : "add",
            "file" : "tests/unittests/test_param_src.py"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
      "fullName" : "Vadim Yanitskiy"
    }
  ],
  "runs" : [
    {
      "number" : 2189,
      "url" : "https://jenkins.osmocom.org/jenkins/view/no-generated/job/master-pysim/JOB_TYPE=card-test,a1=default,a3=default,a4=default,label=simtester/2189/"
    },
    {
      "number" : 2189,
      "url" : "https://jenkins.osmocom.org/jenkins/view/no-generated/job/master-pysim/JOB_TYPE=distcheck,a1=default,a3=default,a4=default,label=osmocom-master/2189/"
    },
    {
      "number" : 2189,
      "url" : "https://jenkins.osmocom.org/jenkins/view/no-generated/job/master-pysim/JOB_TYPE=docs,a1=default,a3=default,a4=default,label=osmocom-master/2189/"
    },
    {
      "number" : 2189,
      "url" : "https://jenkins.osmocom.org/jenkins/view/no-generated/job/master-pysim/JOB_TYPE=pylint,a1=default,a3=default,a4=default,label=osmocom-master/2189/"
    },
    {
      "number" : 2189,
      "url" : "https://jenkins.osmocom.org/jenkins/view/no-generated/job/master-pysim/JOB_TYPE=test,a1=default,a3=default,a4=default,label=osmocom-master/2189/"
    }
  ]
}