Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add small tests for arm64 #3986

Merged
merged 3 commits into from
Mar 17, 2023
Merged

Add small tests for arm64 #3986

merged 3 commits into from
Mar 17, 2023

Conversation

chrzaszcz
Copy link
Member

@chrzaszcz chrzaszcz commented Mar 14, 2023

Run the small test job on the arm64 architecture. Details in commit messages.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@codecov
Copy link

codecov bot commented Mar 14, 2023

Codecov Report

Patch coverage has no change and project coverage change: -0.02 ⚠️

Comparison is base (5fe1413) 83.56% compared to head (67d51c8) 83.54%.

❗ Current head 67d51c8 differs from pull request most recent head 4797cf8. Consider uploading reports for the commit 4797cf8 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3986      +/-   ##
==========================================
- Coverage   83.56%   83.54%   -0.02%     
==========================================
  Files         538      538              
  Lines       33975    33975              
==========================================
- Hits        28391    28386       -5     
- Misses       5584     5589       +5     

see 9 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@chrzaszcz chrzaszcz force-pushed the docker-arm64-tests branch 2 times, most recently from dabd0ea to d65952a Compare March 15, 2023 07:34
@mongoose-im

This comment was marked as outdated.

@mongoose-im
Copy link
Collaborator

mongoose-im commented Mar 15, 2023

small_tests_24 / small_tests / d65952a
Reports root / small


small_tests_25 / small_tests / d65952a
Reports root / small


ldap_mnesia_24 / ldap_mnesia / d65952a
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


ldap_mnesia_25 / ldap_mnesia / d65952a
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_24 / pgsql_mnesia / d65952a
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / d65952a
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_25 / odbc_mssql_mnesia / d65952a
Reports root/ big
OK: 4174 / Failed: 1 / User-skipped: 91 / Auto-skipped: 0

muc_SUITE:hibernation:hibernated_room_can_be_queried_for_archive
{error,{{assertion_failed,assert,is_groupchat_message,
              [<<"Restorable message">>],
              undefined,"undefined"},
    [{escalus_new_assert,assert_true,2,
               [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_new_assert.erl"},
                {line,84}]},
     {muc_SUITE,wait_for_mam_result,3,
          [{file,"/home/circleci/project/big_tests/tests/muc_SUITE.erl"},
           {line,4394}]},
     {muc_SUITE,'-hibernated_room_can_be_queried_for_archive/1-fun-0-',3,
          [{file,"/home/circleci/project/big_tests/tests/muc_SUITE.erl"},
           {line,4130}]},
     {escalus_story,story,4,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_story.erl"},
             {line,72}]},
     {muc_SUITE,hibernated_room_can_be_queried_for_archive,1,
          [{file,"/home/circleci/project/big_tests/tests/muc_SUITE.erl"},
           {line,4126}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1782}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1291}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1223}]}]}}

Report log


dynamic_domains_mysql_redis_25 / mysql_redis / d65952a
Reports root/ big
OK: 4152 / Failed: 0 / User-skipped: 114 / Auto-skipped: 0


pgsql_mnesia_24 / pgsql_mnesia / d65952a
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


elasticsearch_and_cassandra_25 / elasticsearch_and_cassandra_mnesia / d65952a
Reports root/ big
OK: 2728 / Failed: 0 / User-skipped: 662 / Auto-skipped: 0


internal_mnesia_25 / internal_mnesia / d65952a
Reports root/ big
OK: 2368 / Failed: 0 / User-skipped: 683 / Auto-skipped: 0


riak_mnesia_24 / riak_mnesia / d65952a
Reports root/ big
OK: 2566 / Failed: 0 / User-skipped: 654 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / d65952a
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


mssql_mnesia_25 / odbc_mssql_mnesia / d65952a
Reports root/ big
OK: 4554 / Failed: 1 / User-skipped: 100 / Auto-skipped: 0

muc_SUITE:hibernation:hibernated_room_can_be_queried_for_archive
{error,{{assertion_failed,assert,is_groupchat_message,
              [<<"Restorable message">>],
              undefined,"undefined"},
    [{escalus_new_assert,assert_true,2,
               [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_new_assert.erl"},
                {line,84}]},
     {muc_SUITE,wait_for_mam_result,3,
          [{file,"/home/circleci/project/big_tests/tests/muc_SUITE.erl"},
           {line,4394}]},
     {muc_SUITE,'-hibernated_room_can_be_queried_for_archive/1-fun-0-',3,
          [{file,"/home/circleci/project/big_tests/tests/muc_SUITE.erl"},
           {line,4130}]},
     {escalus_story,story,4,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_story.erl"},
             {line,72}]},
     {muc_SUITE,hibernated_room_can_be_queried_for_archive,1,
          [{file,"/home/circleci/project/big_tests/tests/muc_SUITE.erl"},
           {line,4126}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1782}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1291}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1223}]}]}}

Report log


mysql_redis_25 / mysql_redis / d65952a
Reports root/ big
OK: 4543 / Failed: 1 / User-skipped: 111 / Auto-skipped: 0

graphql_session_SUITE:admin_session:admin_session_cli:admin_kick_user_session
{error,
  {function_clause,
    [{graphql_helper,get_error,
       [1,
        {{<<"200">>,<<"OK">>},
         #{<<"data">> =>
           #{<<"session">> =>
               #{<<"kickUserSession">> =>
                 #{<<"code">> => null,
                   <<"jid">> =>
                     <<"alice_admin_kick_user_session_1177@localhost/res1">>,
                   <<"kicked">> => true,
                   <<"message">> => <<"Session kicked">>}}}}}],
       []},
     {graphql_helper,get_err_msg,2,
       [{file,
          "/home/circleci/project/big_tests/tests/graphql_helper.erl"},
        {line,227}]},
     {graphql_session_SUITE,admin_kick_user_session_story,3,
       [{file,
          "/home/circleci/project/big_tests/tests/graphql_session_SUITE.erl"},
        {line,441}]},
     {escalus_story,story,4,
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_story.erl"},
        {line,72}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1782}]},
     {test_server,run_test_case_eval1,6,
       [{file,"test_server.erl"},{line,1291}]},
     {test_server,run_test_case_eval,9,
       [{file,"test_server.erl"},{line,1223}]}]}}

Report log

@mongoose-im

This comment was marked as outdated.

@mongoose-im
Copy link
Collaborator

mongoose-im commented Mar 15, 2023

small_tests_24 / small_tests / ee7de83
Reports root / small


small_tests_25 / small_tests / ee7de83
Reports root / small


ldap_mnesia_24 / ldap_mnesia / ee7de83
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_24 / pgsql_mnesia / ee7de83
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


ldap_mnesia_25 / ldap_mnesia / ee7de83
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_mysql_redis_25 / mysql_redis / ee7de83
Reports root/ big
OK: 4152 / Failed: 0 / User-skipped: 114 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / ee7de83
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


pgsql_mnesia_24 / pgsql_mnesia / ee7de83
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


elasticsearch_and_cassandra_25 / elasticsearch_and_cassandra_mnesia / ee7de83
Reports root/ big
OK: 2728 / Failed: 0 / User-skipped: 662 / Auto-skipped: 0


internal_mnesia_25 / internal_mnesia / ee7de83
Reports root/ big
OK: 2368 / Failed: 0 / User-skipped: 683 / Auto-skipped: 0


mysql_redis_25 / mysql_redis / ee7de83
Reports root/ big
OK: 4544 / Failed: 0 / User-skipped: 111 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / ee7de83
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


riak_mnesia_24 / riak_mnesia / ee7de83
Reports root/ big
OK: 2566 / Failed: 0 / User-skipped: 654 / Auto-skipped: 0


mssql_mnesia_25 / odbc_mssql_mnesia / ee7de83
Reports root/ big
OK: 4555 / Failed: 0 / User-skipped: 100 / Auto-skipped: 0

@mongoose-im
Copy link
Collaborator

mongoose-im commented Mar 15, 2023

small_tests_24 / small_tests / 541f6c1
Reports root / small


small_tests_25 / small_tests / 541f6c1
Reports root / small


small_tests_25_arm64 / small_tests / 541f6c1
Reports root / small


ldap_mnesia_24 / ldap_mnesia / 541f6c1
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_24 / pgsql_mnesia / 541f6c1
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


ldap_mnesia_25 / ldap_mnesia / 541f6c1
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / 541f6c1
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


dynamic_domains_mysql_redis_25 / mysql_redis / 541f6c1
Reports root/ big
OK: 4152 / Failed: 0 / User-skipped: 114 / Auto-skipped: 0


internal_mnesia_25 / internal_mnesia / 541f6c1
Reports root/ big
OK: 2368 / Failed: 0 / User-skipped: 683 / Auto-skipped: 0


elasticsearch_and_cassandra_25 / elasticsearch_and_cassandra_mnesia / 541f6c1
Reports root/ big
OK: 2728 / Failed: 0 / User-skipped: 662 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_25 / odbc_mssql_mnesia / 541f6c1
Reports root/ big
OK: 4175 / Failed: 0 / User-skipped: 91 / Auto-skipped: 0


pgsql_mnesia_24 / pgsql_mnesia / 541f6c1
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


mysql_redis_25 / mysql_redis / 541f6c1
Reports root/ big
OK: 4544 / Failed: 0 / User-skipped: 111 / Auto-skipped: 0


riak_mnesia_24 / riak_mnesia / 541f6c1
Reports root/ big
OK: 2566 / Failed: 0 / User-skipped: 654 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / 541f6c1
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


small_tests_25_arm64 / small_tests / 541f6c1
Reports root / small


mssql_mnesia_25 / odbc_mssql_mnesia / 541f6c1
Reports root/ big
OK: 4555 / Failed: 0 / User-skipped: 100 / Auto-skipped: 0


small_tests_25_arm64 / small_tests / 541f6c1
Reports root / small

@chrzaszcz chrzaszcz changed the title Add tests for arm64 Add small tests for arm64 Mar 15, 2023
@mongoose-im
Copy link
Collaborator

mongoose-im commented Mar 15, 2023

small_tests_24 / small_tests / 67d51c8
Reports root / small


small_tests_25_arm64 / small_tests / 67d51c8
Reports root / small


small_tests_25 / small_tests / 67d51c8
Reports root / small


ldap_mnesia_24 / ldap_mnesia / 67d51c8
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_24 / pgsql_mnesia / 67d51c8
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


dynamic_domains_mysql_redis_25 / mysql_redis / 67d51c8
Reports root/ big
OK: 4151 / Failed: 1 / User-skipped: 114 / Auto-skipped: 0

service_domain_db_SUITE:db:db_keeps_syncing_after_cluster_join
{error,{test_case_failed,{[<<"example1.com">>,<<"example2.com">>,
               <<"example3.com">>],
              [<<"example1.com">>,<<"example2.com">>,
               <<"example3.com">>,<<"example4.com">>]}}}

Report log


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / 67d51c8
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


ldap_mnesia_25 / ldap_mnesia / 67d51c8
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_25 / odbc_mssql_mnesia / 67d51c8
Reports root/ big
OK: 4175 / Failed: 0 / User-skipped: 91 / Auto-skipped: 0


pgsql_mnesia_24 / pgsql_mnesia / 67d51c8
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


internal_mnesia_25 / internal_mnesia / 67d51c8
Reports root/ big
OK: 2368 / Failed: 0 / User-skipped: 683 / Auto-skipped: 0


elasticsearch_and_cassandra_25 / elasticsearch_and_cassandra_mnesia / 67d51c8
Reports root/ big
OK: 2728 / Failed: 0 / User-skipped: 662 / Auto-skipped: 0


riak_mnesia_24 / riak_mnesia / 67d51c8
Reports root/ big
OK: 2566 / Failed: 0 / User-skipped: 654 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / 67d51c8
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


mssql_mnesia_25 / odbc_mssql_mnesia / 67d51c8
Reports root/ big
OK: 4554 / Failed: 1 / User-skipped: 100 / Auto-skipped: 0

pep_SUITE:pep_tests:unsubscribe_after_presence_unsubscription
{error,{{assertion_failed,assert_many,false,[is_presence],[],[]},
    [{escalus_new_assert,assert_true,2,
               [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_new_assert.erl"},
                {line,84}]},
     {escalus_story,'-make_all_clients_friends/1-fun-0-',2,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_story.erl"},
             {line,109}]},
     {escalus_utils,'-each_with_index/3-fun-0-',3,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_utils.erl"},
             {line,87}]},
     {lists,foldl_1,3,[{file,"lists.erl"},{line,1355}]},
     {escalus_utils,'-each_with_index/3-fun-0-',3,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_utils.erl"},
             {line,87}]},
     {lists,foldl,3,[{file,"lists.erl"},{line,1350}]},
     {escalus_utils,distinct_pairs,2,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_utils.erl"},
             {line,60}]},
     {escalus_story,make_all_clients_friends,1,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_story.erl"},
             {line,106}]}]}}

Report log


mysql_redis_25 / mysql_redis / 67d51c8
Reports root/ big
OK: 4544 / Failed: 0 / User-skipped: 111 / Auto-skipped: 0


dynamic_domains_mysql_redis_25 / mysql_redis / 67d51c8
Reports root/ big
OK: 4152 / Failed: 0 / User-skipped: 114 / Auto-skipped: 0


mssql_mnesia_25 / odbc_mssql_mnesia / 67d51c8
Reports root/ big
OK: 4555 / Failed: 0 / User-skipped: 100 / Auto-skipped: 0

Base automatically changed from docker-arm64 to master March 15, 2023 14:35
@chrzaszcz chrzaszcz marked this pull request as ready for review March 15, 2023 15:31
It should be enough to have the small test logs.
Big tests don't need to be compiled for small tests to succeed.
It can be taken, leading to unexpected failures.
Just use any free port (passing '0' works like this).
Only the machine executor is available, leading to the following solution:
1. Start the main docker image, and the redis image needed by tests,
   joined by host networking.
2. Run small tests in the main docker image.
3. Collect and publish test results on the machine (not in docker) to
   simplify environment configuration.

When CircleCI finally supports docker arm64 executors,
this job can be simplified.
@mongoose-im
Copy link
Collaborator

mongoose-im commented Mar 16, 2023

small_tests_24 / small_tests / 4797cf8
Reports root / small


small_tests_25 / small_tests / 4797cf8
Reports root / small


small_tests_25_arm64 / small_tests / 4797cf8
Reports root / small


ldap_mnesia_24 / ldap_mnesia / 4797cf8
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_24 / pgsql_mnesia / 4797cf8
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


ldap_mnesia_25 / ldap_mnesia / 4797cf8
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_mysql_redis_25 / mysql_redis / 4797cf8
Reports root/ big
OK: 4152 / Failed: 0 / User-skipped: 114 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / 4797cf8
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


pgsql_mnesia_24 / pgsql_mnesia / 4797cf8
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_25 / odbc_mssql_mnesia / 4797cf8
Reports root/ big
OK: 4175 / Failed: 0 / User-skipped: 91 / Auto-skipped: 0


elasticsearch_and_cassandra_25 / elasticsearch_and_cassandra_mnesia / 4797cf8
Reports root/ big
OK: 2728 / Failed: 0 / User-skipped: 662 / Auto-skipped: 0


internal_mnesia_25 / internal_mnesia / 4797cf8
Reports root/ big
OK: 2368 / Failed: 0 / User-skipped: 683 / Auto-skipped: 0


mysql_redis_25 / mysql_redis / 4797cf8
Reports root/ big
OK: 4543 / Failed: 1 / User-skipped: 111 / Auto-skipped: 0

muc_SUITE:hibernation:hibernated_room_can_be_queried_for_archive
{error,{{assertion_failed,assert,is_groupchat_message,
              [<<"Restorable message">>],
              undefined,"undefined"},
    [{escalus_new_assert,assert_true,2,
               [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_new_assert.erl"},
                {line,84}]},
     {muc_SUITE,wait_for_mam_result,3,
          [{file,"/home/circleci/project/big_tests/tests/muc_SUITE.erl"},
           {line,4394}]},
     {muc_SUITE,'-hibernated_room_can_be_queried_for_archive/1-fun-0-',3,
          [{file,"/home/circleci/project/big_tests/tests/muc_SUITE.erl"},
           {line,4130}]},
     {escalus_story,story,4,
            [{file,"/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_story.erl"},
             {line,72}]},
     {muc_SUITE,hibernated_room_can_be_queried_for_archive,1,
          [{file,"/home/circleci/project/big_tests/tests/muc_SUITE.erl"},
           {line,4126}]},
     {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1782}]},
     {test_server,run_test_case_eval1,6,
            [{file,"test_server.erl"},{line,1291}]},
     {test_server,run_test_case_eval,9,
            [{file,"test_server.erl"},{line,1223}]}]}}

Report log


riak_mnesia_24 / riak_mnesia / 4797cf8
Reports root/ big
OK: 2566 / Failed: 0 / User-skipped: 654 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / 4797cf8
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


mssql_mnesia_25 / odbc_mssql_mnesia / 4797cf8
Reports root/ big
OK: 4555 / Failed: 0 / User-skipped: 100 / Auto-skipped: 0


mysql_redis_25 / mysql_redis / 4797cf8
Reports root/ big
OK: 4544 / Failed: 0 / User-skipped: 111 / Auto-skipped: 0

Copy link
Collaborator

@DenysGonchar DenysGonchar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks fine

@DenysGonchar DenysGonchar merged commit 79133e8 into master Mar 17, 2023
@DenysGonchar DenysGonchar deleted the docker-arm64-tests branch March 17, 2023 12:35
@jacekwegr jacekwegr added this to the 6.1.0 milestone Apr 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants