Skip to content

Testing Guide

maggiemsft edited this page Jun 14, 2017 · 50 revisions

Testlab/Testbed

  • Requirement to Setup Sonic Testbed and Run Sonic Test Suite

    • Hardware/Software You are going to need
      • one Regular Linux Server that has Python and 'Ansible' installed
        • We are using Python version is 2.7
        • We are using Ansible version 2.0.0.2
      • At least One 'Fanout' layer2 switch to connect all your Sonic Switch ports testing server port, you may have more 'Fanout' Switches and Sonic as DUT, for more info, please read 'Testbed' section
      • One high performance Linux Server that act as packet generating testing server sending/receiving packets to/from your Sonic Switch, if you want to duplicate Sonic test, minimum memory requirement should be 92G for one testbed. We are using 192G. More Detailed information of testbed design and implementation is available in 'Testbed' section
  • Testbed How To

    Testbed Design, Deploy and Examples

  • Ansible Files to Manage Testlab

    • Ansible Inventory File:
      • ansible/lab

        include all lab DUTs, fanout switches and testbed server topologies

      • ansible/veos:

        all servers vmset vms

  • Testbed Fanout Graph Files

    • ansible/files/sonic_lab_devices.csv

      Helper file helps you create lab_connection_graph.xml, list all devices that are physically connected to fanout testbed (all devices should be in ansible/lab)

    • ansible/files/sonic_lab_links.csv

      Helper file helps you to create lab_connection_graph.xml, list all physical links between DUT, Fanoutleaf and Fanout root switches, servers and vlan configurations for each link

    • ansible/files/creategraph.py

      Helper file helps you generate a lab_connection_graph.xml based on the device file and link file specified above.

    • ansible/files/lab_connection_graph.xml

      This is the lab graph file for library/conn_graph_facts.py to parse and get all lab fanout switch connections information. If you have only one fanout switch, you may go head manually modify the sample lab_connection_graph.xml file to set bot your fanout leaf and fanout root switch management IP point to the same fanout switch management IP and make sure all DUT and Fanout name and IP are matching your testbed.

      Based on ansible_facts, you may write ansible playbooks to deploy fanout switches or run test which requires to know the DUT physical connections to fanout switch

    • Testbed

      Testbed Design, Deploy and Examples

Run Tests

Tests one should run to validate SONiC on your platform

  • Test List

  • general test cases:

    `ansible-playbook -i lab --limit your-dut-name test_sonic.yml --tags your-test-tag

  • run fib test:

    ansible-playbook -i lab --limit your-dut-name test_sonic.yml --tags fib -e "ptf_host=10.64.246.19 testbed_type=t1"

Here are some test design docs

Clone this wiki locally