Expect Symbol ${FLAG1_SYMBOL}
Set Suite Variable ${RSPAMD_FUZZY_ADD_${message}} 1
+Fuzzy Add Test Write Only
+ [Arguments] ${message}
+ Set Suite Variable ${RSPAMD_FUZZY_ADD_${message}} 0
+ ${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} -w 10 -f
+ ... ${RSPAMD_FLAG1_NUMBER} fuzzy_add ${message}
+ Check Rspamc ${result}
+ Sync Fuzzy Storage
+ # Do not scan - in write-only mode CHECK is not performed
+ Set Suite Variable ${RSPAMD_FUZZY_ADD_${message}} 1
+
Fuzzy Delete Test
[Arguments] ${message}
IF ${RSPAMD_FUZZY_ADD_${message}} == 0
Scan File ${message}
Do Not Expect Symbol ${FLAG1_SYMBOL}
+Fuzzy Write Only No Check Test
+ [Arguments] ${message}
+ IF ${RSPAMD_FUZZY_ADD_${message}} != 1
+ Fail "Fuzzy Add was not run"
+ END
+ # In write-only mode, CHECK is not sent, so symbol should not appear
+ Scan File ${message}
+ Do Not Expect Symbol ${FLAG1_SYMBOL}
+
Fuzzy Overwrite Test
[Arguments] ${message}
${flag_numbers} = Create List ${RSPAMD_FLAG1_NUMBER} ${RSPAMD_FLAG2_NUMBER}
Fuzzy Add Test ${i}
END
+Fuzzy Multimessage Add Test Write Only
+ FOR ${i} IN @{MESSAGES}
+ Fuzzy Add Test Write Only ${i}
+ END
+
Fuzzy Multimessage Fuzzy Test
FOR ${i} IN @{MESSAGES}
Fuzzy Fuzzy Test ${i}
Fuzzy Overwrite Test ${i}
END
+Fuzzy Multimessage Write Only No Check Test
+ FOR ${i} IN @{MESSAGES}
+ Fuzzy Write Only No Check Test ${i}
+ END
+
Fuzzy Setup Split Servers
Set Suite Variable ${RSPAMD_FUZZY_ALGORITHM} siphash
Set Suite Variable ${RSPAMD_FUZZY_SERVER_MODE} split
*** Test Cases ***
Fuzzy Add
- Fuzzy Multimessage Add Test
+ # Add hashes without checking (write-only mode doesn't send CHECK)
+ Fuzzy Multimessage Add Test Write Only
-Fuzzy Fuzzy
- Fuzzy Multimessage Fuzzy Test
+Fuzzy Write Only No Check
+ # In write-only mode, CHECK requests are not sent
+ # So scanning should not find symbols even though hashes are in storage
+ Fuzzy Multimessage Write Only No Check Test
Fuzzy Miss
+ # Random messages should not match
Fuzzy Multimessage Miss Test