@@ -786,6 +786,40 @@ defmodule Mix.Tasks.ReleaseTest do
786
786
end )
787
787
end
788
788
789
+ @ tag :unix
790
+ test "works properly with an absolute symlink to release" do
791
+ in_fixture ( "release_test" , fn ->
792
+ Mix.Project . in_project ( :release_test , "." , fn _ ->
793
+ Mix.Task . run ( "release" )
794
+
795
+ File . ln_s! (
796
+ Path . absname ( "_build/#{ Mix . env ( ) } /rel/release_test/bin/release_test" ) ,
797
+ Path . absname ( "release_test" )
798
+ )
799
+
800
+ script = Path . absname ( "release_test" )
801
+ { hello_world , 0 } = System . cmd ( script , [ "eval" , "IO.puts :hello_world" ] )
802
+ assert String . trim_trailing ( hello_world ) == "hello_world"
803
+ end )
804
+ end )
805
+ end
806
+
807
+ @ tag :unix
808
+ test "works properly with a relative symlink to release" do
809
+ in_fixture ( "release_test" , fn ->
810
+ Mix.Project . in_project ( :release_test , "." , fn _ ->
811
+ Mix.Task . run ( "release" )
812
+
813
+ File . mkdir! ( "bin" )
814
+ File . ln_s! ( "../_build/#{ Mix . env ( ) } /rel/release_test/bin/release_test" , "bin/release_test" )
815
+
816
+ script = Path . absname ( "bin/release_test" )
817
+ { hello_world , 0 } = System . cmd ( script , [ "eval" , "IO.puts :hello_world" ] )
818
+ assert String . trim_trailing ( hello_world ) == "hello_world"
819
+ end )
820
+ end )
821
+ end
822
+
789
823
defp open_port ( command , args , env \\ [ ] ) do
790
824
env = for { k , v } <- env , do: { to_charlist ( k ) , to_charlist ( v ) }
791
825
Port . open ( { :spawn_executable , to_charlist ( command ) } , [ :hide , args: args , env: env ] )
0 commit comments