diff --git a/tests/pillar/network.sls b/tests/pillar/network.sls
new file mode 100644
index 0000000..a8dfee6
--- /dev/null
+++ b/tests/pillar/network.sls
@@ -0,0 +1,25 @@
+linux:
+  system:
+    enabled: true
+    domain: local
+  network:
+    enabled: true
+    hostname: test01
+    fqdn: test01.local
+    network_manager: false
+    interface:
+      eth0:
+        enabled: true
+        type: eth
+        address: 192.168.0.102
+        netmask: 255.255.255.0
+        gateway: 192.168.0.1
+        name_servers:
+        - 8.8.8.8
+        - 8.8.4.4
+        mtu: 1500
+      vlan69:
+        enabled: true
+        type: vlan
+        use_interfaces:
+        - interface: ${linux:interface:eth0}
diff --git a/tests/pillar/storage.sls b/tests/pillar/storage.sls
new file mode 100644
index 0000000..6c15b11
--- /dev/null
+++ b/tests/pillar/storage.sls
@@ -0,0 +1,19 @@
+linux:
+  storage:
+    enabled: true
+    swap:
+      file:
+        enabled: true
+        engine: file
+        device: /swapfile
+        size: 512
+    lvm:
+      vg0:
+        enabled: true
+        devices:
+          - /dev/vdb
+        volume:
+          lv01:
+            size: 512M
+            mount:
+              path: /srv
diff --git a/tests/pillar/system.sls b/tests/pillar/system.sls
new file mode 100644
index 0000000..2bebcba
--- /dev/null
+++ b/tests/pillar/system.sls
@@ -0,0 +1,62 @@
+linux:
+  system:
+    enabled: true
+    cluster: default
+    name: test01
+    timezone: Europe/Prague
+    domain: local
+    environment: prd
+    apparmor:
+      enabled: false
+    console:
+      tty0:
+        autologin: true
+    prompt:
+      default: "test01.local$"
+    motd:
+      - warning: |
+          #!/bin/sh
+          printf "WARNING: This is tcpcloud network.\n"
+          printf "  Unauthorized access is strictly prohibited.\n"
+          printf "\n"
+      - info: |
+          #!/bin/sh
+          printf -- "--[tcp cloud]---------------------------\n"
+          printf " Hostname  |  ${linux:system:name}\n"
+          printf " Domain    |  ${linux:system:domain}\n"
+          printf " System    |  %s\n" "$(lsb_release -s -d)"
+          printf " Kernel    |  %s\n" "$(uname -r)"
+          printf -- "----------------------------------------\n"
+          printf "\n"
+    user:
+      root:
+        enabled: true
+        home: /root
+        name: root
+      test:
+        enabled: true
+        name: test
+        sudo: true
+        uid: 9999
+        full_name: Test User
+        home: /home/test
+    group:
+      test:
+        enabled: true
+        name: test
+        gid: 9999
+        system: true
+    job:
+      test:
+        enabled: true
+        command: "/bin/sleep 3"
+        user: test
+        minute: 0
+        hour: 13
+    package:
+      htop:
+        version: latest
+    repo:
+      opencontrail:
+        source: "deb http://ppa.launchpad.net/tcpcloud/contrail-2.20/ubuntu trusty main"
+        architectures: amd64
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
new file mode 100755
index 0000000..1f1316f
--- /dev/null
+++ b/tests/run_tests.sh
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+set -e
+[ -n "$DEBUG" ] && set -x
+
+CURDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+METADATA=${CURDIR}/../metadata.yml
+FORMULA_NAME=$(cat $METADATA | python -c "import sys,yaml; print yaml.load(sys.stdin)['name']")
+
+## Overrideable parameters
+PILLARDIR=${PILLARDIR:-${CURDIR}/pillar}
+BUILDDIR=${BUILDDIR:-${CURDIR}/build}
+VENV_DIR=${VENV_DIR:-${BUILDDIR}/virtualenv}
+DEPSDIR=${BUILDDIR}/deps
+
+SALT_FILE_DIR=${SALT_FILE_DIR:-${BUILDDIR}/file_root}
+SALT_PILLAR_DIR=${SALT_PILLAR_DIR:-${BUILDDIR}/pillar_root}
+SALT_CONFIG_DIR=${SALT_CONFIG_DIR:-${BUILDDIR}/salt}
+SALT_CACHE_DIR=${SALT_CACHE_DIR:-${SALT_CONFIG_DIR}/cache}
+
+SALT_OPTS="${SALT_OPTS} --retcode-passthrough --local -c ${SALT_CONFIG_DIR}"
+
+if [ "x${SALT_VERSION}" != "x" ]; then
+    PIP_SALT_VERSION="==${SALT_VERSION}"
+fi
+
+## Functions
+log_info() {
+    echo "[INFO] $*"
+}
+
+log_err() {
+    echo "[ERROR] $*" >&2
+}
+
+setup_virtualenv() {
+    log_info "Setting up Python virtualenv"
+    virtualenv $VENV_DIR
+    source ${VENV_DIR}/bin/activate
+    pip install salt${PIP_SALT_VERSION}
+}
+
+setup_pillar() {
+    [ ! -d ${SALT_PILLAR_DIR} ] && mkdir -p ${SALT_PILLAR_DIR}
+    echo "base:" > ${SALT_PILLAR_DIR}/top.sls
+    for pillar in ${PILLARDIR}/*; do
+        state_name=$(basename ${pillar%.sls})
+        echo -e "  ${state_name}:\n    - ${state_name}" >> ${SALT_PILLAR_DIR}/top.sls
+    done
+}
+
+setup_salt() {
+    [ ! -d ${SALT_FILE_DIR} ] && mkdir -p ${SALT_FILE_DIR}
+    [ ! -d ${SALT_CONFIG_DIR} ] && mkdir -p ${SALT_CONFIG_DIR}
+    [ ! -d ${SALT_CACHE_DIR} ] && mkdir -p ${SALT_CACHE_DIR}
+
+    echo "base:" > ${SALT_FILE_DIR}/top.sls
+    for pillar in ${PILLARDIR}/*.sls; do
+        state_name=$(basename ${pillar%.sls})
+        echo -e "  ${state_name}:\n    - ${FORMULA_NAME}" >> ${SALT_FILE_DIR}/top.sls
+    done
+
+    cat << EOF > ${SALT_CONFIG_DIR}/minion
+file_client: local
+cachedir: ${SALT_CACHE_DIR}
+verify_env: False
+
+file_roots:
+  base:
+  - ${SALT_FILE_DIR}
+  - ${CURDIR}/..
+
+pillar_roots:
+  base:
+  - ${SALT_PILLAR_DIR}
+  - ${PILLARDIR}
+EOF
+}
+
+fetch_dependency() {
+    dep_root="${DEPSDIR}/$(basename $1 .git)"
+    dep_metadata="${dep_root}/metadata.yml"
+
+    [ -d $dep_root ] && log_info "Dependency $1 already fetched" && return 0
+
+    log_info "Fetching dependency $1"
+    [ ! -d ${DEPSDIR} ] && mkdir -p ${DEPSDIR}
+    git clone $1 ${DEPSDIR}/$(basename $1 .git)
+
+    dep_name=$(cat $dep_metadata | python -c "import sys,yaml; print yaml.load(sys.stdin)['name']")
+    ln -s ${dep_root}/${dep_name} ${SALT_FILE_DIR}/${dep_name}
+
+    METADATA="${dep_metadata}" install_dependencies
+}
+
+install_dependencies() {
+    grep -E "^dependencies:" ${METADATA} >/dev/null || return 0
+    (python - | while read dep; do fetch_dependency "$dep"; done) << EOF
+import sys,yaml
+for dep in yaml.load(open('${METADATA}', 'ro'))['dependencies']:
+    print dep["source"]
+EOF
+}
+
+clean() {
+    log_info "Cleaning up ${BUILDDIR}"
+    [ -d ${BUILDDIR} ] && rm -rf ${BUILDDIR} || exit 0
+}
+
+salt_run() {
+    source ${VENV_DIR}/bin/activate
+    salt-call ${SALT_OPTS} $*
+}
+
+prepare() {
+    [ -d ${BUILDDIR} ] && mkdir -p ${BUILDDIR}
+
+    setup_virtualenv
+    setup_pillar
+    setup_salt
+    install_dependencies
+}
+
+run() {
+    for pillar in ${PILLARDIR}/*.sls; do
+        state_name=$(basename ${pillar%.sls})
+        salt_run --id=${state_name} state.show_sls ${FORMULA_NAME} || (log_err "Execution of ${FORMULA_NAME}.${state_name} failed"; exit 1)
+    done
+}
+
+_atexit() {
+    RETVAL=$?
+    trap true INT TERM EXIT
+
+    if [ $RETVAL -ne 0 ]; then
+        log_err "Execution failed"
+    else
+        log_info "Execution successful"
+    fi
+    return $RETVAL
+}
+
+## Main
+trap _atexit INT TERM EXIT
+
+case $1 in
+    clean)
+        clean
+        ;;
+    prepare)
+        prepare
+        ;;
+    run)
+        run
+        ;;
+    *)
+        prepare
+        run
+        ;;
+esac
