瀏覽代碼

Merge pull request #13275 from nik9000/test_no_start

Test that packages don't start elasticsearch
Nik Everett 10 年之前
父節點
當前提交
2b4bcaeee3

+ 11 - 0
qa/vagrant/src/test/resources/packaging/scripts/30_deb_package.bats

@@ -67,6 +67,17 @@ setup() {
     verify_package_installation
 }
 
+@test "[DEB] elasticsearch isn't started by package install" {
+    # Wait a second to give Elasticsearch a change to start if it is going to.
+    # This isn't perfect by any means but its something.
+    sleep 1
+    ! ps aux | grep elasticsearch | grep java
+    # You might be tempted to use jps instead of the above but that'd have to
+    # look like:
+    # ! sudo -u elasticsearch jps | grep -i elasticsearch
+    # which isn't really easier to read than the above.
+}
+
 @test "[DEB] test elasticsearch" {
     start_elasticsearch_service
 

+ 7 - 0
qa/vagrant/src/test/resources/packaging/scripts/40_rpm_package.bats

@@ -66,6 +66,13 @@ setup() {
     verify_package_installation
 }
 
+@test "[RPM] elasticsearch isn't started by package install" {
+    # Wait a second to give Elasticsearch a change to start if it is going to.
+    # This isn't perfect by any means but its something.
+    sleep 1
+    ! ps aux | grep elasticsearch | grep java
+}
+
 @test "[RPM] test elasticsearch" {
     start_elasticsearch_service
 

+ 8 - 0
qa/vagrant/src/test/resources/packaging/scripts/60_systemd.bats

@@ -46,6 +46,14 @@ setup() {
     systemctl daemon-reload
 }
 
+@test "[SYSTEMD] daemon isn't enabled on restart" {
+    # Rather than restart the VM we just ask systemd if it plans on starting
+    # elasticsearch on restart. Not as strong as a restart but much much
+    # faster.
+    run systemctl is-enabled elasticsearch.service
+    [ "$output" = "disabled" ]
+}
+
 @test "[SYSTEMD] enable" {
     systemctl enable elasticsearch.service
 

+ 20 - 0
qa/vagrant/src/test/resources/packaging/scripts/70_sysv_initd.bats

@@ -37,11 +37,31 @@ setup() {
     skip_not_dpkg_or_rpm
 }
 
+@test "[INIT.D] remove any leftover configuration to start elasticsearch on restart" {
+    # This configuration can be added with a command like:
+    # $ sudo update-rc.d elasticsearch defaults 95 10
+    # but we want to test that the RPM _doesn't_ add it on its own.
+    # Note that it'd be incorrect to use:
+    # $ sudo update-rc.d elasticsearch disable
+    # here because that'd prevent elasticsearch from installing the symlinks
+    # that cause it to be started on restart.
+    sudo update-rc.d -f elasticsearch remove
+}
+
 @test "[INIT.D] install elasticsearch" {
     clean_before_test
     install_package
 }
 
+@test "[INIT.D] daemon isn't enabled on restart" {
+    # Rather than restart the VM which would be slow we check for the symlinks
+    # that init.d uses to restart the application on startup.
+    ! find /etc/rc[0123456].d | grep elasticsearch
+    # Note that we don't use -iname above because that'd have to look like:
+    # [ $(find /etc/rc[0123456].d -iname "elasticsearch*" | wc -l) -eq 0 ]
+    # Which isn't really clearer than what we do use.
+}
+
 @test "[INIT.D] start" {
     service elasticsearch start