| 
									
										
										
										
											2016-01-14 14:13:10 +00:00
										 |  |  | require "testing_env" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class BashTests < Homebrew::TestCase | 
					
						
							| 
									
										
										
										
											2016-08-08 15:04:21 +02:00
										 |  |  |   def assert_valid_bash_syntax(file) | 
					
						
							|  |  |  |     output = Utils.popen_read("/bin/bash -n #{file} 2>&1") | 
					
						
							| 
									
										
										
										
											2016-01-14 14:13:10 +00:00
										 |  |  |     assert $?.success?, output | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_bin_brew | 
					
						
							| 
									
										
										
										
											2016-08-08 15:04:21 +02:00
										 |  |  |     assert_valid_bash_syntax HOMEBREW_LIBRARY_PATH.parent.parent/"bin/brew" | 
					
						
							| 
									
										
										
										
											2016-01-14 14:13:10 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-08 15:04:21 +02:00
										 |  |  |   def test_bash_code | 
					
						
							|  |  |  |     Pathname.glob("#{HOMEBREW_LIBRARY_PATH}/**/*.sh").each do |pn| | 
					
						
							|  |  |  |       pn_relative = pn.relative_path_from(HOMEBREW_LIBRARY_PATH) | 
					
						
							|  |  |  |       next if pn_relative.to_s.start_with?("shims/", "test/", "vendor/") | 
					
						
							|  |  |  |       assert_valid_bash_syntax pn | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_bash_completion | 
					
						
							| 
									
										
										
										
											2016-09-20 08:09:28 +01:00
										 |  |  |     script = HOMEBREW_LIBRARY_PATH.parent.parent/"completions/bash/brew" | 
					
						
							| 
									
										
										
										
											2016-08-08 15:04:21 +02:00
										 |  |  |     assert_valid_bash_syntax script | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_bash_shims | 
					
						
							|  |  |  |     # These have no file extension, but can be identified by their shebang. | 
					
						
							|  |  |  |     (HOMEBREW_LIBRARY_PATH/"shims").find do |pn| | 
					
						
							|  |  |  |       next if pn.directory? || pn.symlink? | 
					
						
							|  |  |  |       next unless pn.executable? && pn.read(12) == "#!/bin/bash\n" | 
					
						
							|  |  |  |       assert_valid_bash_syntax pn | 
					
						
							| 
									
										
										
										
											2016-01-21 18:43:48 +01:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-01-14 14:13:10 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | end |