It's not clear to me if dropping support for this functionality was intentional.

Chain of events:

- #21689 removed test coverage due to a misunderstanding due, I believe, to this functionality being generally supported by all platforms except macOS which does not and returns a different format
- #21756 removed support and caused this regression
- #21690 restores the test coverage that would have caught this regression

Currently, neither the test coverage before #21689 nor the coverage restored by #21690 pass since the merge of #21756.

{
    
    static const unsigned char prefix[] = ".onion checksum";
    static constexpr size_t prefix_len = 15;
    SHA3_256 hasher;
    hasher.Write(MakeSpan(prefix).first(prefix_len));
    hasher.Write(addr_pubkey);
    hasher.Write(VERSION);
    uint8_t checksum_full[SHA3_256::OUTPUT_SIZE];
    hasher.Finalize(checksum_full);
    memcpy(checksum, checksum_full, sizeof(checksum));
}
}; 
bool CNetAddr::SetSpecial(const std::string& addr)
{
    if (!ValidAsCString(addr)) {
        return false;
    }
    if (SetTor(addr)) {
        return true;
    }
    if (SetI2P(addr)) {
        return true;
    }
    return false;
}
bool CNetAddr::SetTor(const std::string& addr)