diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..bacd7c7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+tests/build/
+*.swp
+*.pyc
+.ropeproject
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 9299a80..816a2b5 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,6 +1,6 @@
 linux-formula
 =============
 
-0.0.1 (2015-08-03)
+0.1 (2015-08-03)
 
-- Initial formula setup
\ No newline at end of file
+- Initial formula setup
diff --git a/linux/system/apparmor.sls b/linux/system/apparmor.sls
index 1aa5109..f6737fe 100644
--- a/linux/system/apparmor.sls
+++ b/linux/system/apparmor.sls
@@ -16,8 +16,8 @@
 
 apparmor_service_disable:
   service.dead:
-    name: apparmor
-    enable: false
+  - name: apparmor
+  - enable: false
 
 apparmor_teardown:
   cmd.wait:
diff --git a/metadata.yml b/metadata.yml
new file mode 100644
index 0000000..5403f4d
--- /dev/null
+++ b/metadata.yml
@@ -0,0 +1,3 @@
+name: "linux"
+version: "0.2"
+source: "https://github.com/tcpcloud/salt-formula-linux"
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
