diff --git a/.github/workflows/test-stable.yml b/.github/workflows/test-stable.yml index 4a7e89df..be4b0545 100644 --- a/.github/workflows/test-stable.yml +++ b/.github/workflows/test-stable.yml @@ -228,7 +228,7 @@ jobs: uses: actions/checkout@v4 with: path: ngircd - ref: 3e3f6cbeceefd9357b53b27c2386bb39306ab353 + ref: acf8409c60ccc96beed0a1f990c4f9374823c0ce repository: ngircd/ngircd - name: Build ngircd run: | @@ -351,7 +351,7 @@ jobs: uses: actions/checkout@v4 with: path: unrealircd - ref: da3c1c654481a33035b9c703957e1c25d0158259 + ref: a68625454078641ce984eeb197f7e02b1857ab6c repository: unrealircd/unrealircd - name: Build UnrealIRCd 6 run: | diff --git a/irctest/server_tests/chmodes/operator.py b/irctest/server_tests/chmodes/operator.py index a4b04658..52f9e0f0 100644 --- a/irctest/server_tests/chmodes/operator.py +++ b/irctest/server_tests/chmodes/operator.py @@ -71,22 +71,34 @@ def testChannelOperatorModeTargetDoesNotExist(self): self.assertLessEqual(commands, {ERR_NOSUCHNICK, ERR_USERNOTINCHANNEL}) @cases.mark_specifications("Modern") + @cases.xfailIf( + lambda self: bool( + self.controller.software_name == "UnrealIRCd" + and self.controller.software_version == 5 + ), + "UnrealIRCd <6.1.7 returns ERR_NOSUCHNICK on non-existent channel", + ) def testChannelOperatorModeChannelDoesNotExist(self): - """Test that +o targeting a nonexistent channel fails as expected.""" + """Test that +o targeting a nonexistent channel fails as expected. + + "If is a channel that does not exist on the network, + # the ERR_NOSUCHCHANNEL (403) numeric is returned." + """ self.setupNicks() # target channel does not exist, but target nick does: self.sendLine("chanop", "MODE #nonexistentchan +o chanop") messages = self.getMessages("chanop") self.assertEqual(len(messages), 1) - # Modern: "If is a channel that does not exist on the network, - # the ERR_NOSUCHCHANNEL (403) numeric is returned." - # However, Unreal and ngircd send 401 ERR_NOSUCHNICK here instead: - if self.controller.software_name not in ("UnrealIRCd", "ngIRCd"): - self.assertEqual(messages[0].command, ERR_NOSUCHCHANNEL) - else: - self.assertIn(messages[0].command, [ERR_NOSUCHCHANNEL, ERR_NOSUCHNICK]) + self.assertMessageMatch(messages[0], command=ERR_NOSUCHCHANNEL) @cases.mark_specifications("Modern") + @cases.xfailIf( + lambda self: bool( + self.controller.software_name == "UnrealIRCd" + and self.controller.software_version == 5 + ), + "UnrealIRCd <6.1.7 returns ERR_NOSUCHNICK on non-existent channel", + ) def testChannelOperatorModeChannelAndTargetDoNotExist(self): """Test that +o targeting a nonexistent channel and nickname fails as expected.""" @@ -97,7 +109,7 @@ def testChannelOperatorModeChannelAndTargetDoNotExist(self): self.assertEqual(len(messages), 1) self.assertIn( messages[0].command, - [ERR_NOSUCHCHANNEL, ERR_NOTONCHANNEL, ERR_NOSUCHNICK, ERR_USERNOTINCHANNEL], + [ERR_NOSUCHCHANNEL, ERR_NOTONCHANNEL, ERR_USERNOTINCHANNEL], ) @cases.mark_specifications("Modern") diff --git a/workflows.yml b/workflows.yml index 2a2991ff..eb989199 100644 --- a/workflows.yml +++ b/workflows.yml @@ -230,7 +230,7 @@ software: name: ngircd repository: ngircd/ngircd refs: - stable: 3e3f6cbeceefd9357b53b27c2386bb39306ab353 # three years ahead of rel-26.1 + stable: acf8409c60ccc96beed0a1f990c4f9374823c0ce # three months ahead of v27 release: null devel: master devel_release: null @@ -300,8 +300,8 @@ software: name: UnrealIRCd 6 repository: unrealircd/unrealircd refs: - stable: da3c1c654481a33035b9c703957e1c25d0158259 # 6.0.7 - release: da3c1c654481a33035b9c703957e1c25d0158259 # 6.0.7 + stable: a68625454078641ce984eeb197f7e02b1857ab6c # 6.1.7.1 + release: a68625454078641ce984eeb197f7e02b1857ab6c # 6.1.7.1 devel: unreal60_dev devel_release: null path: unrealircd