--- /dev/null
+#!/bin/sh -eu
+
+PASS=0
+
+cleanup() {
+ [ "$PASS" = "1" ] || echo FAIL
+ exit 1
+}
+
+trap cleanup EXIT HUP INT TERM
+
+if ! mountpoint -q /var/lib/lxcfs; then
+ echo "lxcfs isn't mounted on /var/lib/lxcfs"
+ exit 1
+fi
+
+cgm remove all lxcfs_test_proc || true
+cgm create all lxcfs_test_proc
+cgm removeonempty all lxcfs_test_proc
+cgm movepid all lxcfs_test_proc $$
+
+cgm setvalue memory $(cgm getpidcgroupabs memory $$) \
+ memory.limit_in_bytes $((1024*1024))
+cgm setvalue cpuset $(cgm getpidcgroupabs cpuset $$) \
+ cpuset.cpus 0
+
+# Test cpuinfo
+[ "$(grep "^processor" /var/lib/lxcfs/proc/cpuinfo | wc -l)" = "1" ]
+grep -q "^processor.*0$" /var/lib/lxcfs/proc/cpuinfo
+
+# Test stat
+[ "$(grep "^cpu" /var/lib/lxcfs/proc/stat | wc -l)" = "1" ]
+
+# Test meminfo
+grep -q "^MemTotal.*1024 kB$" /var/lib/lxcfs/proc/meminfo
+
+# Test uptime
+if [ -e /proc/self/ns/user ]; then
+ [ "$(lxc-unshare -s 'USER|PID' cat /var/lib/lxcfs/proc/uptime)" = "0 0" ]
+fi
+
+PASS=1
+echo PASS