nebius/SWE-rebench-V2-PRs huggingface dataset:
Repository: metal3-io/baremetal-operator
Pull request #1076 (2022-01-21 01:34:45)

Bug 2041765: irmc: change BootInterface to ipxe
Fixed iRMC server deployment failure during IPI.

See https://github.com/openshift/installer/issues/5504 for details.

Signed-off-by: Zhou Hao <zhouhao@fujitsu.com>

metal3-io-bot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by:
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **hardys** after the PR has been reviewed.
You can assign the PR to them by writing `/assign @hardys` in a comment when ready.

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=metal3-io%2Fbaremetal-operator).

<details open>
Needs approval from an approver in each of these files:

- **[OWNERS](https://github.com/metal3-io/baremetal-operator/blob/main/OWNERS)**

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["hardys"]} -->
metal3-io-bot: @zhouhao3: The following test **failed**, say `/retest` to rerun all failed tests or `/retest-required` to rerun all mandatory failed tests:

Test name | Commit | Details | Required | Rerun command
--- | --- | --- | --- | ---
unit | 0db4cb0fe4509c47bbe0fec4f6f7b58fef2def14 | [link](https://prow.apps.test.metal3.io/view/s3/prow-logs/pr-logs/pull/metal3-io_baremetal-operator/1076/unit/1484338653567127552) | true | `/test unit`

[Full PR test history](https://prow.apps.test.metal3.io/pr-history?org=metal3-io&repo=baremetal-operator&pr=1076). [Your PR dashboard](https://prow.apps.test.metal3.io/pr?query=is:pr+state:open+author:zhouhao3).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->

Patch:
diff --git a/pkg/hardwareutils/bmc/irmc.go b/pkg/hardwareutils/bmc/irmc.go
index 1bfa03f9..a9c0b789 100644
--- a/pkg/hardwareutils/bmc/irmc.go
+++ b/pkg/hardwareutils/bmc/irmc.go
@@ -75,7 +75,7 @@ func (a *iRMCAccessDetails) BIOSInterface() string {
 }
 
 func (a *iRMCAccessDetails) BootInterface() string {
-	return "pxe"
+	return "ipxe"
 }
 
 func (a *iRMCAccessDetails) ManagementInterface() string {


Test patch:
diff --git a/pkg/hardwareutils/bmc/access_test.go b/pkg/hardwareutils/bmc/access_test.go
index 9dcd84e2..2619c2d1 100644
--- a/pkg/hardwareutils/bmc/access_test.go
+++ b/pkg/hardwareutils/bmc/access_test.go
@@ -479,7 +479,7 @@ func TestStaticDriverInfo(t *testing.T) {
 			needsMac:   true,
 			driver:     "irmc",
 			bios:       "",
-			boot:       "pxe",
+			boot:       "ipxe",
 			management: "",
 			power:      "",
 			raid:       "irmc",
Repository: metal3-io/baremetal-operator
Pull request #1087 (2022-02-17 07:41:56)

Add mac address validation for BootMACAddress
This PR adds mac address validation for BootMACAddress if it is not empty.

ardaguclu: /test-v1b1-centos-integration
/test-v1b1-ubuntu-integration
ardaguclu: /test-v1b1-centos-integration
/test-v1b1-ubuntu-integration

Patch:
diff --git a/apis/metal3.io/v1alpha1/baremetalhost_validation.go b/apis/metal3.io/v1alpha1/baremetalhost_validation.go
index dbaf2f52..f2b91efc 100644
--- a/apis/metal3.io/v1alpha1/baremetalhost_validation.go
+++ b/apis/metal3.io/v1alpha1/baremetalhost_validation.go
@@ -2,6 +2,7 @@ package v1alpha1
 
 import (
 	"fmt"
+	"net"
 	"regexp"
 
 	"github.com/google/uuid"
@@ -84,6 +85,13 @@ func validateBMCAccess(s BareMetalHostSpec, bmcAccess bmc.AccessDetails) []error
 		errs = append(errs, fmt.Errorf("BMC driver %s requires a BootMACAddress value", bmcAccess.Type()))
 	}
 
+	if s.BootMACAddress != "" {
+		_, err := net.ParseMAC(s.BootMACAddress)
+		if err != nil {
+			errs = append(errs, err)
+		}
+	}
+
 	if s.BootMode == UEFISecureBoot && !bmcAccess.SupportsSecureBoot() {
 		errs = append(errs, fmt.Errorf("BMC driver %s does not support secure boot", bmcAccess.Type()))
 	}


Test patch:
diff --git a/apis/metal3.io/v1alpha1/baremetalhost_validation_test.go b/apis/metal3.io/v1alpha1/baremetalhost_validation_test.go
index 26e4beff..29b6b978 100644
--- a/apis/metal3.io/v1alpha1/baremetalhost_validation_test.go
+++ b/apis/metal3.io/v1alpha1/baremetalhost_validation_test.go
@@ -263,6 +263,22 @@ func TestValidateCreate(t *testing.T) {
 			oldBMH:    nil,
 			wantedErr: "BMC driver libvirt does not support secure boot",
 		},
+		{
+			name: "InvalidBootMACAddress",
+			newBMH: &BareMetalHost{
+				TypeMeta:   tm,
+				ObjectMeta: om,
+				Spec: BareMetalHostSpec{
+					BMC: BMCDetails{
+						Address:         "irmc://127.0.1.1",
+						CredentialsName: "test1",
+					},
+					BootMACAddress: "00:00:00:00:00",
+					BootMode:       UEFISecureBoot,
+				}},
+			oldBMH:    nil,
+			wantedErr: "address 00:00:00:00:00: invalid MAC address",
+		},
 		{
 			name: "UEFISecureBootWithSupportBMC",
 			newBMH: &BareMetalHost{
Repository: tetratelabs/wazero
Pull request #1983 (2024-01-30 19:54:35)

wazevo(amd64): fixes copysign


Patch:
diff --git a/internal/engine/wazevo/backend/isa/amd64/machine.go b/internal/engine/wazevo/backend/isa/amd64/machine.go
index beb81794..bb8dce5b 100644
--- a/internal/engine/wazevo/backend/isa/amd64/machine.go
+++ b/internal/engine/wazevo/backend/isa/amd64/machine.go
@@ -1661,22 +1661,29 @@ func (m *machine) lowerFcopysign(instr *ssa.Instruction) {
 
 	// Clear the non-sign bits of src via AND with the mask.
 	var opAnd, opOr sseOpcode
-	var mask uint64
+	var signMask uint64
 	if _64 {
-		mask, opAnd, opOr = 0x8000000000000000, sseOpcodeAndpd, sseOpcodeOrpd
+		signMask, opAnd, opOr = 0x8000000000000000, sseOpcodeAndpd, sseOpcodeOrpd
 	} else {
-		mask, opAnd, opOr = 0x80000000, sseOpcodeAndps, sseOpcodeOrps
+		signMask, opAnd, opOr = 0x80000000, sseOpcodeAndps, sseOpcodeOrps
 	}
 
-	tmp := m.c.AllocateVReg(x.Type())
-	m.lowerFconst(tmp, mask, _64)
+	signBitReg := m.c.AllocateVReg(x.Type())
+	m.lowerFconst(signBitReg, signMask, _64)
+	nonSignBitReg := m.c.AllocateVReg(x.Type())
+	m.lowerFconst(nonSignBitReg, ^signMask, _64)
 
-	and := m.allocateInstr().asXmmRmR(opAnd, rn, tmp)
+	// Extract the sign bits of rn.
+	and := m.allocateInstr().asXmmRmR(opAnd, rn, signBitReg)
 	m.insert(and)
 
-	// Finally, copy the sign bit of src to dst.
-	or := m.allocateInstr().asXmmRmR(opOr, rm, tmp)
+	// Clear the sign bit of dst via AND with the non-sign bit mask.
+	xor := m.allocateInstr().asXmmRmR(opAnd, rm, nonSignBitReg)
+	m.insert(xor)
+
+	// Copy the sign bits of src to dst via OR.
+	or := m.allocateInstr().asXmmRmR(opOr, newOperandReg(signBitReg), nonSignBitReg)
 	m.insert(or)
 
-	m.copyTo(tmp, rd)
+	m.copyTo(nonSignBitReg, rd)
 }


Test patch:
diff --git a/internal/engine/wazevo/e2e_test.go b/internal/engine/wazevo/e2e_test.go
index 013d83d2..63d938ab 100644
--- a/internal/engine/wazevo/e2e_test.go
+++ b/internal/engine/wazevo/e2e_test.go
@@ -1254,16 +1254,16 @@ func TestSpectestV1(t *testing.T) {
 		//{name: "endianness"},
 		{name: "exports"},
 		{name: "f32"},
-		//{name: "f32_bitwise"},
+		{name: "f32_bitwise"},
 		{name: "f32_cmp"},
 		{name: "f64"},
-		//{name: "f64_bitwise"},
+		{name: "f64_bitwise"},
 		{name: "f64_cmp"},
 		{name: "fac"},
 		//{name: "float_exprs"},
 		//{name: "float_literals"},
 		{name: "float_memory"},
-		//{name: "float_misc"},
+		{name: "float_misc"},
 		{name: "func"},
 		{name: "func_ptrs"},
 		{name: "forward"},