Consider adding equality operators for various objects in the datamodel
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 45/100
Direzione di ricerca
Inizia in include/up-cpp/uri/tools/Utils.h alle righe 188-201, quindi esamina i test di uguaglianza delle utility URI e il caso URI_UTILS testUResourceEquals dell’issue. Verifica che l’uguaglianza per gli handle UResource gestisca in modo coerente i nomi e i campi opzionali di istanza o messaggio, quindi esegui i test pertinenti delle utility URI per confermare il caso che fallisce e che i confronti correlati siano stati risolti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
The logic in the '==' operators for URI (and its components do not seem to be correct).
This code is only comparing the instance portion of the URI if the left hand side includes the instance. However the logic should really be like this:
[[nodiscard]] [[maybe_unused]] auto static
operator==(const uprotocol::v1::UResource &s, const uprotocol::v1::UResource &o) -> bool {
// Resources are consider equal if:
// 1. Names are equal
// 2. Both Resources do not have an instance OR
// both Resource do have an instance and they are the same
// 3. Both Resources do not have a message OR
// both resources have a message and they are the same
return (s.name() == o.name()) && // Condition 1
// Condition 2
((!s.has_instance() && !o.has_instance()) ||
(s.has_instance() && o.has_instance() && s.instance() == o.instance())) && // Condition 2
// Condition 3
((!s.has_message() && !o.has_message()) ||
(s.has_message() && o.has_message() && s.message() == o.message())); // if exists must be same message
}
A simple test case (it fails right now) shows the problem with the code as is:
TEST(URI_UTILS, testUResourceEquals) {
using uprotocol::uri::BuildUResource;
using uprotocol::v1::UResource;
using uprotocol::uri::operator==;
// Resource 1 - No Instance
auto resource_1{BuildUResource().setName("rpc").build()};
// Resource 2 - With Instance
auto resource_2{BuildUResource().setName("rpc").setInstance("CreateTopic").build()};
EXPECT_FALSE(resource_1 == resource_2);
}
- Lingua principale
- C++
- Stelle
- 29
- Fork
- 32
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di eclipse-uprotocol/up-cpp
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 50/100
eclipse-uprotocol/up-cpp#327 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
eclipse-uprotocol/up-cpp#320 ·
-
Add CI for QNX8.0 buildAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
eclipse-uprotocol/up-cpp#319 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
eclipse-uprotocol/up-cpp#303 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
eclipse-uprotocol/up-cpp#302 ·
Tutte le issue di eclipse-uprotocol/up-cpp
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
`IO.FS.realPath` reports every failure as `noFileOrDirectory` instead of classifying by `errno`Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
leanprover/lean4#15683 ·
I maintainer di solito rispondono entro 1 giorno
-
llvm.memcpy with destination align but no source align asserts "Missed Source alignment!"Forse già presa @pvelesko l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
KhronosGroup/SPIRV-LLVM-Translator#4093 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
SIMQ silently truncates multi-query batch search to the first queryForse già presa @LHT129 l’ha presa oggi. Apertakind/bug module/index needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
antgroup/vsag#3080 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno