Commit Graph

58 Commits

Author SHA1 Message Date
AYAHASSAN287 b40938b030
E2E_Tests_CI_FIX (#85)
* add draft test case

* Adding test test_filter_3_senders_1_receiver

* Adding test test_filter_3_senders_45_msg_1_receiver

* add test test_filter_50_subscribe_node

* Remove comments and enhance tests

* Increase node limit to 1000 connection

* making PR ready with 3 tests

* Making changes for go-waku to pass

* Adding changes to make go-waku tests pass

* Change max nodes to 20 when node_2 = go-waku

* Fix CI failure because of nwaku

* Increase wait time for filter request

* Decrease number of nodes to pass the CI

* Add more wait to pass CI

* time_limit increase  to 120 to pass CI

* add flag filter-subscription-timeout to 600 instead of default value 300

* Additional changes for CI failure

* remove filter = true from subscribed filter node

* increase nodes to 15 in test_filter_many_subscribed_nodes

* test_filter_3_senders_multiple_msg_1_receiver

increase message_num to 12

* change max-connections to 50 instead of 1000

* commenting max-connection and filter timeout for CI failure

* Revert timeout back to 20
2024-11-10 09:48:47 +02:00
AYAHASSAN287 f5ff548e64
Ignore test_store_filter_interaction_with_six_nodes when NODE_2 = go-waku (#86) 2024-11-07 17:30:03 +02:00
AYAHASSAN287 da90b9c3e1
E2E_Tests_part1 (#80)
* adding initial draft for repo example test

* Adding more steps to the example_six_nodes test

* draft3 with adding step5 to the testcase

* adding test test_store_filter_interaction_with_six_nodes

* adding draft of test test_2_filter_nodes

* adding 2 tests
1- test_msg_not_stored_when_ephemeral_true
2- test_msg_stored_when_ephemeral_false

* fix review comments and add final changes for additional 3 tests

* Fix indentation issue

* Fix indentation issue

* Fixing review comments

* Enhancements based on review

* Adding changes to make tests pass with NODE_2= GO-WAKU

* Fix CI failure in test_store_filter_interaction_with_six_nodes

* Fixing CI failure for test test_store_filter_interaction_with_six_nodes

* Add wait after filter request to fix CI failure

* increase wait for CI failure
2024-11-07 14:27:54 +02:00
fbarbu15 dbc5bfe0f9
fix lp test (#82) 2024-10-30 10:49:49 +02:00
AYAHASSAN287 e419b7f8a6
Waku edge tests all (#81)
* Adding function to calculate different time variants

exclude 5 tests for go-waku

* change second node to nwaku

* skip 2 tests failed for go-waku

* change node_2 back to nwaku

* skipping failed test for nwaku

* remove the skipping for nwaku node as requested
2024-10-28 12:30:40 +03:00
AYAHASSAN287 bd187ad118
adding test "test_store_not_include_data" (#76)
* adding test "test_store_not_include_data"

* adding test case for wrong peer address formatting

* try restore message with wrong peer id

* send peer address with wrong protocol

* Fixing review comments & add test for wrong topic

* adding test for topic content positive scenario

* adding test for different wrong content topic

* adding content topic & pubsubtopic tests

* adding test cases for wrong encoding 7 no encoding of pubsub topic

* adding test case test_time_filter_start_time_after_end_time

* adding more time tests

* adding tests with wrong start & end time

* adding invalid ascending test

* adding page_size tests

* adding invalid ascending test

* fix minor issues and adding comments

* fixing review comments

* minor change in test name

* Adding review comments
2024-10-24 13:16:37 +03:00
shashank sanket b0dc5206c9
Negative and edge cases for/store/v3/messages with query param hashes (#74)
* added test with hashes edge and boundry cases

* added 2 test with incorrect query param in cursor and hashes

* fixed linters error and handeliong for None error
2024-09-20 14:15:34 +05:30
shashank sanket 4c706c34bb
added store_test_cursor negative cases and edge cases (#73) 2024-09-18 19:54:05 +05:30
fbarbu15 790e71db48
chore/fixes for nwaku updates (#72)
* fixes

* fixes

* fixes
2024-09-13 14:38:23 +03:00
fbarbu15 ef7ffac51f
update lp errors (#71) 2024-09-12 05:58:34 +00:00
fbarbu15 86954c6270
store sync tests (#69)
* store sync tests

* fix

* store sync tests

* sync flag
2024-09-11 12:36:58 +03:00
fbarbu15 cc8bae75c1
test logs template (#70) 2024-09-05 19:58:46 +08:00
fbarbu15 089b8eefce
metrics tests (#68) 2024-08-30 14:15:45 +03:00
fbarbu15 4855cd710c
chore: check logs at teardown (#67)
* check logs at teardown

* fix

* fix
2024-08-27 11:56:25 +03:00
fbarbu15 945364b0b2
e2e tests (#65) 2024-08-20 14:11:36 +03:00
Roman Zajic a4c3a648cc
chore: RLNv2 tests update (#62)
* test: node startup time for valid_payloads_dynamic_at_slow_rate

* fix: remove timing debug info

* fix: reuse existing keystore file

* fix: remove skip marks for PR2612

* fix: remove skip marks for Issue 2837

* test: change valid_payloads_at_slow_rate to send 102 messages

* fix: remove existing keystore before new registration

* test: magical 20 messages

* fix: omit RLN params for static mode
- update test_valid_payloads_at_slow_rate
- update test_valid_payloads_at_spam_rate

* fix: condition check for rln-relay-dynamic

* fix: update static tests
- update test_valid_payloads_dynamic_at_slow_rate

* fix: add rln-relay-user-message-limit to registration

* fix: on-chain tests

* fix: valid_payloads_n1_with_rln_n2_without_rln_at_spam_rate

* fix: rename lrn method for lightpush setup
- delete test_valid_payloads_mixed_epoch_at_slow_rate

* fix: test_valid_payloads_lightpush_at_spam_rate

* fix: run registration only when necessary

* fix: reorder tests - lightpush first
- test workflow

* fix: use touch instead of unlink

* test: single test only test_valid_payloads_lightpush_at_spam_rate

* test: run 2 tests

* fix: remove reporting part from test workflow

* fix: all tests

* fix: use rmtree on keystore dir_path

* fix: use external rm

* fix: enable all RLN tests

* fix: further optimize number or registrations

* test: single on chain test

* test: two on chain tests

* test: swap order of tests

* test: reduce test logging and output docker log

* fix: rewrite keystore path related logic

* fix: use cache for keystore prefixes

* fix: index in setup_optional_rln_relay_nodes

* fix: delete test workflows
- revert env_vars
2024-08-09 16:13:17 +08:00
fbarbu15 68c4b57c08
lightpush changes (#64)
* lightpush changes

* lightpush changes
2024-08-05 16:51:48 +03:00
fbarbu15 ae43bd4448
add store retry method (#60) 2024-07-18 10:41:20 +02:00
fbarbu15 cfc6aa8f72
rate limit changes (#59) 2024-07-17 13:27:09 +03:00
fbarbu15 b56a98d8a6
fix lp fails (#57) 2024-07-16 09:43:07 +03:00
Roman Zajic 055541ad0d
fix: cluster_id 0 for peer store related tests (#56)
* fix: use cluster_id 0 for peer store related tests

* test: simulation for issue

* fix: use cluster_id not 0 and subscribe to static shard for go-waku

* fix: revert env values to original defaults
2024-07-15 15:47:42 +02:00
fbarbu15 a27c028104
chore: use another cluster id (#55)
* use another cluster id

* adjust tests
2024-07-11 23:00:18 +03:00
Roman Zajic 6aa7716793
Test/peer exchange (#51)
* test: establish basic node setup for pe

* test: debug peer retrieval error with nwaku

* fix: disable discovery v5 on the requester node

* fix: assert node3 peer store to exact content

* test: get peers for filter node

* test: get peers after node1 was restarted

* fix: allow tests to run only when Node2 is Go-waku

* fix: revert NODE_1 to its original default
2024-07-09 14:07:48 +02:00
fbarbu15 95f8a791fa
chore: fix connection error message (#50) 2024-07-03 11:14:00 +03:00
Roman Zajic 0ce2572810
chore: refactor setup relay node for sharding (#48)
* fix: refactor setup relay for sharding

* fix: refactor also all related to _resolve_sharding_flags
2024-07-02 09:33:53 +02:00
fbarbu15 c9ce9314c6
bugfixes (#49) 2024-07-01 13:32:14 +03:00
Roman Zajic ccad2a12f6
Test/peer connection management (#45)
* test: get peers from peer store

* test: add peers to peer store

* fix: add go_waku support

* test: placeholder for Issue 1549 solution test

* test: expect two peers for two protocols/services

* test: restart survival with persistent peer store

* fix: add issue to skip mark

* fix: move Waku related methods to waku_node module

* test: full peer store takeover

* fix: add kill of Node 1

* fix: remove debug info
- skip while waiting on issue 2792

* test: peer store content after node restart

* fix: revert nwaku image back to use latest

* fix: added delays to let nodes finish discovery

* fix: move peer_persistence config steps out of start

* fix: NODE1 default back to DEFAULT_GOWAKU

* fix: partial refactor for setup_first-second_relay_node

* test: daily workflow after refactor

* test: shorter name for daily workflow

* test: RLN only

* test: increase timeout

* test: check Sepolia API endpoint

* test: run RLN tests in single thread

* fix: remove Sepolia API check

* fix: skipp all RLN tests till registration works

* fix: remove test workflow
2024-06-21 23:40:40 +08:00
fbarbu15 aab71a92a7
Test/discv5 (#46)
* discv5 tests

* discv5 tests
2024-06-17 17:52:16 +03:00
fbarbu15 03973b8897
Test/store v3 (#38)
* first commit

* get message tests 1

* store tests with node restarts

* reliability tests

* store tests

* fixes

* more tests

* fixes

* new store tests

* new store tests

* adjustments

* adjust tests for go-waku

* postgress test

* postgress test

* fixes

* small fixes

* reliability updates

* postgress test

* adjsutmens for go-waku
2024-05-28 16:50:14 +03:00
Roman Zajic 39a6d13276
fix: occasional failure to check published message for RLN tests (#44)
* test: increased message propagation delay

* test: increased message propagation delay in all instances

* fix: delete test workflow
2024-05-27 22:34:56 +08:00
fbarbu15 84636b7a57
fix dial fail test (#43) 2024-05-24 17:30:09 +03:00
fbarbu15 73a1711d54
fixed for lightpush with big payload (#39) 2024-05-16 12:57:30 +03:00
Roman Zajic 151233fddb
chore: RLN relay tests (#30)
* fix: add get_multiaddr_with_id step
- temporarily use local docker images

* fix: discard containers used for RLN registration

* fix: switch to use cluster ID 1 for RLN

* test: publish at slow and spam rate

* fix: shorten test data set

* fix: move RLN related code into separate class

* fix: use send only publish function
- add spam and alternate rate tests

* fix: use math.trunc instead of rounding

* fix: first message without delay

* fix: add one more second to messages with delay

* fix: add methods to setup non default RLN nodes

* fix: rewrite tests using steps rather than fixtures
- prepare for non default settings for RLN

* test: random epoch with valid_payloads_at_slow_rate

* test: random user message limit with valid payloads

* fix: skip test "random user message limit with valid payloads"

* fix: mark flaky "at variable_rate with valid payloads"

* fix: rename tests for easier debugging

* fix: mark valid_payloads_dynamic_at_slow_rate to skip

* fix: forgot to add actual file

* test: valid payloads dynamic(on chain) at spam rate
- extend timeout for ensure_ready() to 600s
- add ensure_healthy() for future use
- add text content based rest call
- remove NODE1, NODE2 imports

* fix: revert env_vars to source images from Harbor

* fix: reuse setup first and second rln relay node for setup_main_rln_relay_nodes

* fix: reuse register_rln_single_node for register_main_rln_relay_nodes

* fix: start using src.steps.common
- removed RLN test class inheritance from StepsRelay

* fix: test using whole data set at test payloads_at_slow_rate

* fix: switch to send msg and check for slow rate tests

* fix: add comment for skip check at first message

* fix: refactor payloads_at_variable_rate to use only one payload pattern

* fix: remove the plural from payloads_at_variable_rate

* fix: multiple class inheritance for TestRelayRLN

* test: node1 with rln node2 without rln at spam rate

* test: mixed epoch at slow rate

* test: add lightpush methods

* test: send valid payloads lightpush at spam rate

* fix: node1 to act as light push receiving node
- add setup lightpush node to spin off node2 with lightpush support

* fix: use NODE1 NODE2 instead of DEFAULT_NWAKU

* fix: no lightpush param required for plain RLN relay

* fix: comment for lightpush

* fix: comment for lightpush - wait for implementation

* fix: comment on chain tests

* fix: add lightpush case to publish_message

* fix: remove check_light_pushed_message_reaches_receiving_peer from StepsRLN

* fix: change comment for mixed_epoch_at_slow_rate

* test: happy and common case with 5 nodes

* fix: add all required fixtures explicitly

* fix: add timeout param to ensure_ready

* fix: skip RLN tests for go-waku

* fix: reformated with pre-commit

* fix: uncomment skip for debugging

* fix: put the skip back

* fix: change comment for on chain tests

* fix: run RLN tests in serial
- add grouping of tests to runner
- use smaller dataset for spam rate tests

* test: Nim to Nim workflow

* test: check also additional nodes for go-waku

* test: all nodes are nwaku

* fix: string quotes

* fix: remove additional nodes

* fix: re-arrange skip conditions

* test: RLN only

* fix: change default additional nodes to nwaku only

* fix: change additional nodes rather at top level workflow

* fix: enable all tests

* test: problems with current workdir

* test: rln only

* test: correct typo

* test: re-enable all tests
- remove current dir debug

* fix: nwaku additional nodes for nim to nim worklfow

* fix: re-able discord notification
- delete test workflow

* fix: add get_multiaddr_with_id step
- temporarily use local docker images

* fix: discard containers used for RLN registration

* fix: switch to use cluster ID 1 for RLN

* test: publish at slow and spam rate

* fix: shorten test data set

* fix: rebase onto master

* fix: use send only publish function
- add spam and alternate rate tests

* fix: use math.trunc instead of rounding

* fix: first message without delay

* fix: add one more second to messages with delay

* fix: add methods to setup non default RLN nodes

* fix: rewrite tests using steps rather than fixtures
- prepare for non default settings for RLN

* test: random epoch with valid_payloads_at_slow_rate

* test: random user message limit with valid payloads

* fix: skip test "random user message limit with valid payloads"

* fix: mark flaky "at variable_rate with valid payloads"

* fix: rename tests for easier debugging

* fix: mark valid_payloads_dynamic_at_slow_rate to skip

* fix: forgot to add actual file

* test: valid payloads dynamic(on chain) at spam rate
- extend timeout for ensure_ready() to 600s
- add ensure_healthy() for future use
- add text content based rest call
- remove NODE1, NODE2 imports

* fix: revert env_vars to source images from Harbor

* fix: reuse setup first and second rln relay node for setup_main_rln_relay_nodes

* fix: reuse register_rln_single_node for register_main_rln_relay_nodes

* fix: start using src.steps.common
- removed RLN test class inheritance from StepsRelay

* fix: test using whole data set at test payloads_at_slow_rate

* fix: switch to send msg and check for slow rate tests

* fix: add comment for skip check at first message

* fix: refactor payloads_at_variable_rate to use only one payload pattern

* fix: remove the plural from payloads_at_variable_rate

* fix: multiple class inheritance for TestRelayRLN

* test: node1 with rln node2 without rln at spam rate

* test: mixed epoch at slow rate

* test: add lightpush methods

* test: send valid payloads lightpush at spam rate

* fix: node1 to act as light push receiving node
- add setup lightpush node to spin off node2 with lightpush support

* fix: use NODE1 NODE2 instead of DEFAULT_NWAKU

* fix: no lightpush param required for plain RLN relay

* fix: comment for lightpush

* fix: comment for lightpush - wait for implementation

* fix: comment on chain tests

* fix: add lightpush case to publish_message

* fix: remove check_light_pushed_message_reaches_receiving_peer from StepsRLN

* fix: change comment for mixed_epoch_at_slow_rate

* test: happy and common case with 5 nodes

* fix: add all required fixtures explicitly

* fix: add timeout param to ensure_ready

* fix: skip RLN tests for go-waku

* fix: uncomment skip for debugging

* fix: put the skip back

* fix: change comment for on chain tests

* fix: run RLN tests in serial
- add grouping of tests to runner
- use smaller dataset for spam rate tests

* test: Nim to Nim workflow

* test: check also additional nodes for go-waku

* test: all nodes are nwaku

* fix: string quotes

* fix: remove additional nodes

* fix: re-arrange skip conditions

* test: RLN only

* fix: change default additional nodes to nwaku only

* fix: change additional nodes rather at top level workflow

* fix: enable all tests

* test: problems with current workdir

* test: rln only

* test: correct typo

* test: re-enable all tests
- remove current dir debug

* fix: nwaku additional nodes for nim to nim worklfow

* fix: re-able discord notification
- delete test workflow

* test: re-test again after rebase

* fix: wait longer for credential store

* test: try again with Discord report off

* fix: enable Discord
- delete test workflow
2024-05-07 08:31:12 +08:00
fbarbu15 c1d4c0cc6b
lightpush and store bugfixes (#32)
* bugfixes

* store bugfixes

* fix 2567
2024-04-18 13:04:08 +03:00
fbarbu15 8d956b3d9c
Test/store part 1 (#31)
* first set of tests

* fix ci

* new tests

* finish publish tests

* new tests

* running nodes tests

* new tests

* finishing touches

* new test

* temp commit

* running node tests

* new tests

* new store tests

* store part 1
2024-04-17 08:37:31 +03:00
fbarbu15 8b525f2b1a
Light push tests (#27)
* first set of tests

* fix ci

* new tests

* finish publish tests

* new tests

* running nodes tests

* new tests

* finishing touches

* new test

* fixes

* fixes
2024-04-11 13:00:53 +03:00
fbarbu15 0095b5e04a
sharding tests part 1 (#24)
* sharding struct

* add peers

* running nodes tests

* cleanup sharding steps

* new sharding tests

* test_different_cluster_different_shard

* new tests

* new static sharding tests

* new auto sharding tests

* change structure

* running nodes tests

* new autosharding tests

* adjust tests

* new sharding tests

* sharding

* sharding filter

* add peers
2024-04-02 09:11:56 +03:00
fbarbu15 17ba9baf45
bug fixes for nwaku 2436 and 2286 (#26) 2024-03-22 15:55:06 +02:00
Florin Barbu 26dd7144c7
skip because of 1054 (#22) 2024-03-15 18:11:59 +08:00
Florin Barbu 776d2841fe
fix filter test (#21)
* fix filter test

* small fix
2024-03-12 11:11:04 +02:00
Florin Barbu dd140dcb74
small fixes (#20)
* small fixes

* adjustments

* xfail test
2024-03-07 14:36:53 +02:00
Florin Barbu 7df4741a36
fixes for latest failures (#19) 2024-03-05 08:55:35 +02:00
Florin Barbu 98c76dc214
fixes for latest failures and bugfixes (#17)
* fixes for latest failures and bugfixes

* other fixes
2024-02-15 14:58:20 +02:00
Roman Zajic 8cb44f1201
chore: RLN registration support (#16)
* chore: parameters and volumes for RLN relay

* chore: add startup test for RLN

* fix: remove redundant rln_enabled from WakuNode

* fix: - and _ magic in rln parameters

* fix: key 'eth_testnet_key' -> 'eth_client_private_key'

* fix: rln-register_only -> rln-register-only

* fix: use extend instead of append for the volumes list

* fix: use absolute path for the volumes names
- mark volumes shared across containers

* fix: remove :z attr from volumes

* fix: remove filename from volume path

* fix: remove request for ENR

* test: plain RLN registration

* fix: remove subscribe

* fix: remove ENR related params

* test: add run_container func to Docker Mananger

* fix: remove run_container func from Docker Mananger - no need for exec

* fix: pass exec commands instead of specialized docker exec func

* fix: exclude RLN arguments from others

* fix: separate RLN volumes by implementation

* test: registration with nwaku

* test: registration over existing credentials

* test: add RLN Relay node startup

* test: RLN credentials reuse for  relay node startup

* fix: clean up unnecessary commands

* fix: clean up unnecessary commands for non RLN relay too

* test: regression by sending one valid message

* fix: add forgotten call to get enr_uri

* fix: check RLN credentials set properly

* fix: parenthesis in eval expression

* fix: better check for RLN credentials

* fix: update to new flags - gowaku
- separate private key for go/nwaku

* test: register RLN

* fix: RLN credentials check

* fix: remove enable rln-relay flag from registration

* test: reorder commands to check go-waku registration

* fix: restructure if statements for RLN registration

* fix: different set of flag for RLN registration and operation

* fix: forgotten "eth" in eth-contract-address

* fix: remove redundant None from get_env_var call

* fix: refactor rln credentials parsing from start function

* fix: missed second return value

* test: call to parse_rln_credentials

* fix: remove redundant self in call to parse_rln_credentials

* fix: remove rln related values if not valid

* fix: refactored to accept multiple private keys
- JSON source for RLN credentials
- removed go-waku support for RLN

* test: register RLN with 2 nwaku nodes

* fix: missing open file, key errors

* fix: return effective keystore_path

* fix: cleanup unused env variables

* fix: cleanup unused env variables from relay

* fix: wait longer for credentials file to be written to disk

* test: remove waiting for credentials file to be written to disk

* fix: add select_private_key()

* fix: merge parse_rln_credentials and parse_rln_registration_credentials

* test: wait for filesystem cache

* test: try with os.sync to flush cache

* test: stop container to clear cache

* fix: 15 sec wait + stop container to clear cache

* test: RLN registration test with fixture and cred file check

* test: added allure.step - RLN registration for single node
- corresponding test to register all keys

* fix: f-strings in the test

* fix: sync naming for register_main_rln_relay_nodes

* fix: add WARN message to log unset and expected RLN credentials

* fix:  pytest.skip added to exit tests when non nwaku image is used

* fix: swap NODE2 for DEFAULT_NWAKU

* fix: let rln_credential_store_ready to raise exception for retry

* fix: let register_rln to raise exception too, when credential fine still not available

* fix: remove container stop

* fix: tune down retry timeouts

* fix: remove unnecessary f-string

* test: reduce unnecessary variables init

* test: undo reduce unnecessary variables init

* test: increase timeout for rln_credential_store_ready

* test: refactor kwargs handling into sanitize_docker_flags

* fix: created RLN registration check
- changed rln_credential_store_ready to function

* fix: delete unnecessary ports from register_rln init

* fix: remove wait for registration entirely

* test: RLN_CREDENTIALS env var example

* fix: check_rln_registration to raise exception

* fix: use f-string at check_rln_registration

* fix: add gen_step_id function

* fix: RLN_CREDENTIALS as loaded from .env

* fix: RLN_CREDENTIALS example, skipping test if not set

* test: RLN with actions

* fix: tune up RLN timeouts for Github runners

* test: filesystem write to /

* fix: change RLN data to be stored at working directory

* fix: catch exception instead of "if not"
- print out container log

* fix: wrap logs into debug msg

* fix: print log file

* fix: remove additional logging

* fix: exit RLN cred parsing sooner when not used
- delete proper keys from default_args

* fix: Allure report

* fix: Discord notifications

* fix: remove f-string

* fix: delete test workflow
2024-02-13 22:01:30 +08:00
Florin Barbu de60598b6c
Chore/address failures (#14)
* address failures

* job for interop tests

* fix branch name

* fix remaining tests

* see job name

* set caller input

* split reports per caller

* trigger again

* try with publish_dir

* small fix

* small fix

* remove on pr
2024-01-19 12:56:55 +02:00
Florin Barbu ca5853747b
increase max content topic length to 100 (#12) 2024-01-09 19:58:08 +02:00
Florin Barbu d1e624e2e0
fix for 150 kb max messages adjustments (#10)
* fix for 150 kb max messages adjustments

* fix reruns

* small fixes
2024-01-05 15:36:07 +02:00
Florin Barbu ea6a48a80a
filter push tests (#9)
* filter push tests

* filter push tests

* small adjustments

* test commit from new PC
2023-12-31 19:13:31 +02:00
Florin Barbu d7be7e9504
multiple node tests (#8)
* mulitple node tests

* fix filter get message

* adjustments for gowaku as filter

* small adjustments

* small adjustments

* adjustments after CI runs

* prepare for PR

* prepare for PR

* prepare for PR

* address review comments

* use cluster id 0 as suggested by Prem

* small adjustments after CI run

* small adjustments after CI run

* small adjustments after CI run

* small adjustments after CI run
2023-12-27 16:03:31 +02:00
Florin Barbu 26718c38a4
Filter Unsubscribe (#7)
* filter unsubscribe

* filter unsubscribe

* fix pring typo
2023-12-18 10:02:17 +02:00