Преглед на файлове

[Test] Make `Run Rspamd` function reusable by other stuff

tags/1.3.3
Andrew Lewis преди 7 години
родител
ревизия
8e2d181f6d
променени са 1 файла, в които са добавени 21 реда и са изтрити 28 реда
  1. 21
    28
      test/functional/lib/rspamd.robot

+ 21
- 28
test/functional/lib/rspamd.robot Целия файл

@@ -38,18 +38,6 @@ Check Rspamc Match String
Run Keyword If ${inverse} == False Should Contain ${subject} ${str}
... ELSE Should Not Contain ${subject} ${str}

Export Rspamd Vars To Suite
[Arguments] ${TMPDIR} ${RSPAMD_LOGPOS} ${RSPAMD_PID}
Set Suite Variable ${TMPDIR}
Set Suite Variable ${RSPAMD_LOGPOS}
Set Suite Variable ${RSPAMD_PID}

Export Rspamd Vars To Test
[Arguments] ${TMPDIR} ${RSPAMD_LOGPOS} ${RSPAMD_PID}
Set Test Variable ${TMPDIR}
Set Test Variable ${RSPAMD_LOGPOS}
Set Test Variable ${RSPAMD_PID}

Follow Rspamd Log
${RSPAMD_LOGPOS} = Log Logs ${TMPDIR}/rspamd.log ${RSPAMD_LOGPOS}
Run Keyword If '${RSPAMD_SCOPE}' == 'Test' Set Test Variable ${RSPAMD_LOGPOS}
@@ -58,10 +46,12 @@ Follow Rspamd Log

Generic Setup
[Arguments] @{vargs}
${TMPDIR} ${RSPAMD_PID} ${RSPAMD_LOGPOS} = Run Rspamd @{vargs}
Run Keyword If '${RSPAMD_SCOPE}' == 'Test' Export Rspamd Vars To Test ${TMPDIR} ${RSPAMD_LOGPOS} ${RSPAMD_PID}
... ELSE IF '${RSPAMD_SCOPE}' == 'Suite' Export Rspamd Vars To Suite ${TMPDIR} ${RSPAMD_LOGPOS} ${RSPAMD_PID}
... ELSE Fail 'RSPAMD_SCOPE must be Test or Suite'
&{d} = Run Rspamd @{vargs}
${keys} = Get Dictionary Keys ${d}
: FOR ${i} IN @{keys}
\ Run Keyword If '${RSPAMD_SCOPE}' == 'Suite' Set Suite Variable ${${i}} &{d}[${i}]
\ ... ELSE IF '${RSPAMD_SCOPE}' == 'Test' Set Test Variable ${${i}} &{d}[${i}]
\ ... ELSE Fail 'RSPAMD_SCOPE must be Test or Suite'

Generic Teardown
Shutdown Process With Children ${RSPAMD_PID}
@@ -94,26 +84,29 @@ Run Rspamc
[Return] ${result}

Run Rspamd
[Arguments] @{vargs}
${TMPDIR} = Make Temporary Directory
Set Directory Ownership ${TMPDIR} ${RSPAMD_USER} ${RSPAMD_GROUP}
[Arguments] @{vargs} &{kwargs}
${has_CONFIG} = Evaluate 'CONFIG' in $kwargs
${CONFIG} = Set Variable If ${has_CONFIG} == True &{kwargs}[CONFIG] ${CONFIG}
&{d} = Create Dictionary
${tmpdir} = Make Temporary Directory
Set Directory Ownership ${tmpdir} ${RSPAMD_USER} ${RSPAMD_GROUP}
${template} = Get File ${CONFIG}
: FOR ${i} IN @{vargs}
\ ${newvalue} = Replace Variables ${${i}}
\ Run Keyword If '${RSPAMD_SCOPE}' == 'Test' Set Test Variable ${${i}} ${newvalue}
\ ... ELSE IF '${RSPAMD_SCOPE}' == 'Suite' Set Suite Variable ${${i}} ${newvalue}
\ ... ELSE Fail 'RSPAMD_SCOPE must be Test or Suite'
\ Set To Dictionary ${d} ${i}=${newvalue}
${config} = Replace Variables ${template}
${config} = Replace Variables ${config}
Log ${config}
Create File ${TMPDIR}/rspamd.conf ${config}
Create File ${tmpdir}/rspamd.conf ${config}
${result} = Run Process ${RSPAMD} -u ${RSPAMD_USER} -g ${RSPAMD_GROUP}
... -c ${TMPDIR}/rspamd.conf DBDIR\=${TMPDIR} env:TMPDIR=${TMPDIR} env:LD_LIBRARY_PATH=${TESTDIR}/../../contrib/aho-corasick
... -c ${tmpdir}/rspamd.conf DBDIR\=${tmpdir} env:TMPDIR=${tmpdir} env:LD_LIBRARY_PATH=${TESTDIR}/../../contrib/aho-corasick
Run Keyword If ${result.rc} != 0 Log ${result.stderr}
${rspamd_logpos} = Log Logs ${TMPDIR}/rspamd.log 0
${rspamd_logpos} = Log Logs ${tmpdir}/rspamd.log 0
Should Be Equal As Integers ${result.rc} 0
Wait Until Created ${TMPDIR}/rspamd.pid
${rspamd_pid} = Get File ${TMPDIR}/rspamd.pid
[Return] ${TMPDIR} ${rspamd_pid} ${rspamd_logpos}
Wait Until Created ${tmpdir}/rspamd.pid
${rspamd_pid} = Get File ${tmpdir}/rspamd.pid
Set To Dictionary ${d} RSPAMD_LOGPOS=${rspamd_logpos} RSPAMD_PID=${rspamd_pid} TMPDIR=${tmpdir}
[Return] &{d}

Scan Message With Rspamc
[Arguments] ${msg_file} @{vargs}

Loading…
Отказ
Запис